比较jquery中的两个数组
Comparing two arrays in jquery
使用此代码。。。
var a = ['volvo','random data'];
var b = ['random data'];
var unique = $.grep(a, function(element) {
return $.inArray(element, b) == -1;
});
var result = unique ;
alert(result);
我能够找到数组"a"的哪个元素不在数组"b"中。
现在我需要找到:
- 如果数组"a"的元素在数组"b"中
- 它在数组"b"中的索引是多少
例如,"随机数据"在两个数组中,所以我需要返回它在数组b中的位置,即零索引。
关于您的评论,这里有一个解决方案:
使用jQuery:
$.each( a, function( key, value ) {
var index = $.inArray( value, b );
if( index != -1 ) {
console.log( index );
}
});
不带jQuery:
a.forEach( function( value ) {
if( b.indexOf( value ) != -1 ) {
console.log( b.indexOf( value ) );
}
});
将两个数组转换为字符串并比较
if (JSON.stringify(a) == JSON.stringify(b))
{
// your code here
}
如果indexOf
返回-1
,则可以在a上迭代并使用Array.prototype.indexOf
来获取b中元素的索引。b不包含a的元素。
var a = [...], b = [...]
a.forEach(function(el) {
if(b.indexOf(el) > 0) console.log(b.indexOf(el));
else console.log("b does not contain " + el);
});
这可能会起作用:
var positions = [];
for(var i=0;i<a.length;i++){
var result = [];
for(var j=0;j<b.length;j++){
if(a[i] == b[j])
result.push(i);
/*result array will have all the positions where a[i] is
found in array b */
}
positions.push(result);
/*For every i I update the required array into the final positions
as I need this check for every element */
}
所以你的最终数组应该是这样的:
var positions = [[0,2],[1],[3]...]
//implies a[0] == b[0],b[2], a[1] == b[1] and so on.
希望它能帮助
你可以试试这个:
var a = ['volvo','random data'];
var b = ['random data'];
$.each(a,function(i,val){
var result=$.inArray(val,b);
if(result!=-1)
alert(result);
})
相关文章:
- 如何使用 node.js 比较两个 json 数组
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- 访问$.ajax()函数中的两个不同数组
- 正在更新mongod中两个对象内部的数组
- 如何使用javascript合并两个对象数组
- 比较包含多个值对的两个JavaScript数组
- jQuery对象从html表中查询为两个一维数组,用于Chartist图表
- 检查来自不同数组的两个元素的一个属性是否相等
- 如何在javascript中合并两个对象数组
- JavaScript - 合并两个对象数组并根据属性值删除重复数据
- 效率:整数数组的一个子集中两个项之间的最大差值
- 将两个值组合成extjs 4.1的形式
- 如何将中的两个geoJSON功能集合添加到两个层组中
- 在 JQuery 验证中验证多个“数组命名”文件输入和下拉列表
- 在一个区间之间生成两个随机数组
- 使用两个捕获组和JavaScript的replace()函数
- 通过找到两个重复组之一的正则表达式组
- 从Javascript中的两个子数组中获取随机结果
- 如何在一个可选的非捕获组中创建两个捕获组
- paper.js:获取两个层/组的原始像素数据