使用Lodash检查属性是否具有值

3

我该如何检查任何value属性是否有值?

[
  {
    "name": "DESIGEMPRESA",
    "value": ""
  },
  {
    "name": "DSP_DIRECAO",
    "value": ""
  },
  {
    "name": "MES",
    "value": ""
  }
]
5个回答

4
你可以使用Array#some来检查是否存在至少一个元素没有空的value值。

var arr = [
  {
    "name": "DESIGEMPRESA",
    "value": ""
  },
  {
    "name": "DSP_DIRECAO",
    "value": ""
  },
  {
    "name": "MES",
    "value": ""
  }
],
res = arr.some(v => v.value != ''); //no object with not empty value

console.log(res);


3
lodash中有一个函数叫做_.isEmpty()。

    const a = [
      {
        "name": "DESIGEMPRESA",
        "value": ""
      },
      {
        "name": "DSP_DIRECAO",
        "value": ""
      },
      {
        "name": "MES",
        "value": ""
      }
    ]
    
    const r = a.map(x => _.isEmpty(x.value))
    
    console.log(r)
<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>


有点晚了,但我认为如果你想通过数组进行映射并使用此检查来显示单个属性,这是最好的选择。 - hellomello

3

您不需要使用lodash:

arr.some(obj => Boolean(obj.value))

2

var arr = [
  {
    "name": "DESIGEMPRESA",
    "value": ""
  },
  {
    "name": "DSP_DIRECAO",
    "value": ""
  },
  {
    "name": "MES",
    "value": "d"
  }
]

var out = arr.filter(function(obj){
  return obj.value
})

console.log(out)


如果所有元素都是空值怎么办? - kind user
@Kinduser out.length 将会是0。 - Rohith K P
1
我敢打赌,OP想要返回true/false - kind user

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接