有没有办法检查整个阵列上对象的键值?

时间:2017-06-15 08:51:05

标签: javascript arrays

我找到了一种检查对象键的方法在整个数组中是否为空的实际方法,实际上我从长度超过1500的API接收冗长的数组,所以我不想运行map函数,或者循环因为数组太长了。

这是截图。

enter image description here

以下是我从API

获得的回复示例
[{
    reference: "1234",
    address: "abcz",
    city: "sydney",
    conso: "",
    date: "26/04/2017"
  },
  {
    reference: "1234",
    address: "abcz",
    city: "sydney",
    conso: "",
    date: "26/04/2017"
  },
  {
    reference: "1234",
    address: "abcz",
    city: "sydney",
    conso: "",
    date: "26/04/2017"
  },
  {
    reference: "1234",
    address: "abcz",
    city: "sydney",
    conso: "",
    date: "26/04/2017"
  },
  ....

]

3 个答案:

答案 0 :(得分:3)

您可以使用Array#some,它会在第一次查找时退出。

var allEmpty = data.some(o => o[key] !== '');

或检查所有内容,然后使用Array#every

var allEmpty = data.every(o => o[key] === '');

答案 1 :(得分:0)

不清楚你的问题究竟是什么。如果你只想查看数组中的一个对象是否有一个空的' conso'属性然后这将工作,而不必搜索整个数组:

const emptyConso = arr.find(place => !place.conso)

答案 2 :(得分:0)

这很慢......

var ref = "1499"
console.log(JSON.stringify(obj).indexOf('"reference":"'+ref+'"')!=-1);

相比
console.log(obj.some(o => o["reference"] === ref))

https://jsperf.com/some-or-stringify/