首页 > 解决方案 > 获取具有非空数组作为值的属性的对象键

问题描述

我有一个数组:

417: Array(2)
0: 24301
1: 24300
length: 2
__proto__: Array(0)
418: [24562]
length: 419
__proto__: Array(0)

现在,我需要从这个数组中获取所有arr长度大于 0 的键。在这种情况下,我需要答案为['417','418'].

我尝试使用each循环和.length每个元素进行过滤:

我的代码如下:

        console.log(arr_of_sel_units);
        $.each(arr_of_sel_units, function(k, v) {
            console.log(v.length)
        });

但是,它返回错误Cannot read property 'length' of undefined

标签: javascriptarrays

解决方案


如果正确的数据类型 ( Object) 用于arr,您可以Array.prototype.filter()跨行Object.keys()(但是,它适用于您的符号,就像数组本质上是一个对象一样):

const src = {a: ['1','2','3' ], b: [], c: ['1' ], d: []},

      result = Object.keys(src).filter(key => src[key].length)
      
console.log(result)      


推荐阅读