【问题标题】:filter the objects with array using ES6使用 ES6 过滤带有数组的对象
【发布时间】:2018-02-07 07:42:35
【问题描述】:

如何使用 ES6 求 ARRAY 的长度:

var x = [{a:"apple", b:"Baloon"},{a:"elephant", b:"dog"}];

var results = x.filter(aValue => aValue.length > 3);

console.log(results);

注意: 如果这是单独的数组列表,aValue.length 会起作用。但是,因为这些是分配给属性的 值。前任; a:苹果,需要差异方法。

我需要替换 "aValue.length" 以找到大于 3 的值的长度的正确代码是什么,所以答案是苹果、气球和大象?

【问题讨论】:

    标签: javascript arrays object filter ecmascript-6


    【解决方案1】:

    这将满足您的需求

    var results = x.filter(val => Object.keys(val).length > 3)
    

    Object.keys() 方法返回对象中包含的所有键的数组。

    【讨论】:

    • 这不是一个对象。这是一个数组。您有机会使用您的解决方案运行代码吗?
    • 这是一个对象数组。是的,该解决方案有效,它获取数组内每个对象的Object.keys()。你遇到了什么麻烦?
    【解决方案2】:

    对象没有 length 属性。但是有一个小技巧可以让您获得对象的键数。

    有两种方法可以使用。 Object.getOwnPropertyNames(val).lengthObject.keys(val).length

    但是,两者之间有一点区别。 Object.getOwnPropertyNames(a) 返回对象 a 的所有自身属性。 Object.keys(a) 返回所有可枚举的自身属性。

    【讨论】:

      猜你喜欢
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 1970-01-01
      • 2021-03-03
      • 2018-01-16
      相关资源
      最近更新 更多