
var arr1 = [{address: "东城区"},{address: "在水一方"}];
var arr2 = [{addresses: [{address: "东城区"},{address: "东城区"}]}];
// 取出 arr1 中的地址字符串列表
var address_in_arr1 = Arrayfrom(arr1, item => itemaddress); // 得到 [ '东城区', '在水一方' ]
// 取出 arr2 中所有出现的地址字符串
var address_in_arr2 = Arrayfrom(arr2, item => Arrayfrom(itemaddresses, i => iaddress))flat(); // 得到 [ '东城区', '东城区' ]
// 方案1: 遍历 arr1 中的所有数据, 看是不是都在 arr2 取出结果内
var result = true;
for(var i of address_in_arr1){
if(!address_in_arr2includes(i)){
consolelog(i+ ',未在 arr2 中出现');
result = false;
break;
}
}
consolelog('方案1: 检查结果: ',result '通过':'不通过');
// 方案2, 使用 lodash, nodejs 后端可用
const _ = require('lodash')
// 取出在 arr1 中出现,但未在 arr2中出现的数据列表, 如果得到的不是空数组, 则说明 arr1中有未在 arr2里出现的数据
const not_includes = _without(address_in_arr1, address_in_arr2);
if(not_includeslength > 0){
consolelog('方案2: 检查不通过', JSONstringify(not_includes) + ', 未在 arr2 中出现')
} else {
consolelog('检查通过')
}
可以用数组的filter方法,在回调里面根据属性判断,留下或者不留下,之后,会得到一个新数组,存着的就是你想要的对象
比如说,
var arr = [1,2,3,4,5,6]filter(function(num) {
return num % 2 === 0
})
这里面就是筛选出了1到6中的所有偶数
这个除了遍历意外恐怕没有更有效办法。
不用循环的话就用递归,不过效率还没循环高呢。
另外我写的这个是有问题的js数组是引用类型的,需要一个副本。
真打算用的 再改善改善
var arr = [{name:"aa"},{name:"bb"},{name:"cc"},{name:"dd"},{name:"zhangsan"}];function doFind(name,arr){
if(!arr||arrlength<1){
return null;
}
var obj = arrpop();
if(objname==name){
return obj
}
doFind(name,arr);
}
var obj = doFind("zhangsan",arr);
alert(objobjname:obj);
~
你以id作为元素保存, 但是里面是数组[]
但是后面你直接取这个id来点offsetTop,当然是未定义了
documentgetElementById(eleArray[0][0])offsetTop
以上就是关于JS 多数组判断属性值全部的内容,包括:JS 多数组判断属性值、js数组对象里面如何返回某几个属性值相等的对象、js 数组中有多个相同的类,每个类中都有一个name的属性,如何得到数组中,name的值等于zhangsan的对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)