JS 多数组判断属性值

JS 多数组判断属性值,第1张

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的对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9646453.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-30
下一篇2023-04-30

发表评论

登录后才能评论

评论列表(0条)

    保存