检查array1中的item是否存在于array2中
check if item in array1 exist in array2
使用数组时遇到一些问题。我基本上想遍历array1
,检查该数组中的哪些元素存在于array2
中,然后返回一个包含所有匹配项的新数组。
怎么做呢?
这段代码是纯javascript的,没有带库
var fruits1 = ["Banana", "Pear"];
var fruits2 = ["Banana", "Orange", "Apple", "Mango"];
var fruits3 = [];
for (i=0; i< fruits1.length; i++)
if (fruits2.indexOf(fruits1[i]) > -1)
fruits3.push(fruits1[i]);
如果您有不同长度的未排序数组,这也可以工作。
创建一个函数叫做intersect,例如:
function intersect(arr1,arr2){
//We need to know which array is the shortest to avoid useless loops
if(arr2.length<arr1.length){
var temp = arr1;
arr1 = arr2;
arr2 = temp;
}
// Now, we are sure arr1 is the shortest
var result = [];
for(var i = 0; i<arr1.length; i++){
if(arr2.indexOf(arr1[i])>-1) result.push(arr1[i]);
}
return result;
}
该函数接受2个数组作为参数,无需考虑它们的顺序。
然后你可以调用它并查看结果:
var arr1 = [1,2,3,4,5];
var arr2 = [4,5,6,7,8,9,10,12];
var inter = intersect(arr1,arr2);
alert(inter);
JS Fiddle Demo
香草Javascript
for(var x=0;x<array1.length;x++){
for(var y=0;y<array2.length;y++){
if ( array1[x] == array2[y] ) array3.push(array1[x]);
}
}
Jquery版本$.each(array1, function(k,v){
$.each(array2, function(k2,v2){
if ( v == v2 ) array3.push(v2);
});
});
相关文章:
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 用于检查数组中是否存在元素的javascript自定义方法
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 正在将事件处理程序添加到不存在的类
- 是否存在React Native“;WEB代码安全防护”;
- 一个密码测试程序,如果存在空格,它会提醒用户
- 验证会话中是否存在对象's数组
- javascript如果图像不存在don't加载它
- 如何查找值是否存在于二叉树中
- IE9的HTML5 Canvas getImageData()函数存在问题
- 由于响应中不存在“Access Control Allow Origin”标头,跨域请求停止工作
- CORS-服务器端cookie没有保存在chrome浏览器上
- 检查是否存在使用chrome扩展的javascript库
- 是否存在Javascript Liferay Service库的文档?如何处理错误情况
- 测试mongo脚本中是否存在参数
- 存在每个时间元素的javascript事件
- 比较两个数组,如果 Array2 中存在值,则选中复选框