如何检查JavaScript数组中的特定键值长度

时间:2019-04-01 13:50:20

标签: javascript arrays sorting react-native

我收到如下响应。

[
  {
    id: '508',
    class: 'class1',
    value: '0',
    profit: '2,
    color: 'black'
  },
  {
    id: '509',
    class: 'class2',
    value: '0',
    profit: '0',
    color: 'black'
  },
  {
    id: '510',
    class: 'class3',
    value: '0',
    profit: '0',
    color: 'black'
  },
  {
    id: '511',
    class: 'class',
    value: '0',
    profit: '2.40',
    color: 'black'
  }
]

我必须检查profit密钥长度是否大于2个索引,某些条件是其他条件。 注意:如果利润值为0,则它​​将仅视为空值。

为此,我的操作如下。

const profitArrayLength = sortedProfitData.keys('profit').length;
console.log('profitArrayLength is', profitArrayLength);

但是,它在控制台中显示为未定义。

2 个答案:

答案 0 :(得分:2)

您可以使用Array#filter方法,在过滤器回调中定义check属性和check值。

JavaScript

答案 1 :(得分:0)

我不确定您要问的是什么,但这听起来好像您希望看到具有正利润的对象数量。为此,您需要使用过滤操作。过滤器对数组进行操作,根据条件检查每个元素,然后从满足该条件的元素中返回一个新数组。然后,您可以检查该数组的长度以查看有多少元素满足该条件。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

这是一个示例用法,您应该尝试理解该方法以应用于检查多少个项​​目具有正利润的情况。在这种情况下,我们拥有对象的值为a,b和c。在这里的伪造示例中,我将过滤出每个具有负“ b”值的项目,以查看有多少。然后,如果其中有两个以上,则输入一个代码块。

let arrayToFilter = [{
    a: 0,
    b: 0,
    c: '',
}, {
    a: 0,
    b: -1,
    c: '',
}, {
    a: 0,
    b: -7,
    c: '',
}, {
    a: 0,
    b: 0,
    c: '',
}];

let filteredArray = arrayToFilter.filter(function(arrayItem){
    return arrayItem.b < 0;
});

if(filteredArray.length >=2){
    // do something
}

我希望可以帮助您了解此数组操作!