js 数组匹配数据处理?
let arr = [ {name: "张三", id: 1},
{name: "李四", id: 2},
{name: "王五", id: 3},
]
let arr = [
{name: "张三", id: 1},
{name: "张三", id: 2},
{name: "张三", id: 3},
]
判断arr数组里面name字段如果都是同一个名字就返回true,出现多个名字就返回false
回答:
function test(list){ return !list.some(item=>item.name !== list[0].name)
}
var arr1 = arr = [
{name: "张三", id: 1},
{name: "李四", id: 2},
{name: "王五", id: 3},
]
var arr2 = [
{name: "张三", id: 1},
{name: "张三", id: 2},
{name: "张三", id: 3},
]
test(arr1) // false
test(arr2) // true
直接用 Array.some()
这个API去找不同项就行了。 找到不同项目会返回 true
然后取非就会返回 false
了。
没有找到不同项就会返回 false
取非就会返回 true
。而且是短路返回找到第一项不匹配的后续的就不会在执行了。
数组还有几个类似的API,你也都可以看看的。
相关阅读
Array.prototype.some() - JavaScript | MDN
回答:
可以设计一个通用的处理函数
- 接收一个目标数组,和需要检测的 key,以及 key 对应的值
- 基于你的需求,可以对 value 提供一个默认值,其是一个动态参数,获取目标数组第一项的 key 对应的值作为检测值即可
function isUnique(target, key, value = target[0][key]) { return target.every((row) => row[key] === value)
}
以上是 js 数组匹配数据处理? 的全部内容, 来源链接: utcz.com/p/933233.html