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 数组匹配数据处理?

以上是 js 数组匹配数据处理? 的全部内容, 来源链接: utcz.com/p/933233.html

回到顶部