javascript - 获取具有非空数组作为值的属性的对象键
问题描述
我有一个数组:
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
解决方案
如果正确的数据类型 ( 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)
推荐阅读
- reactjs - 无法读取 null 的属性“ownerDocument”
- module - 如何将 lmod 与鱼一起使用?
- flowtype - 带有联合参数的函数间接导致联合成员出现莫名其妙的错误
- database - 我如何阅读 blcokfile_xxxx
- python - SQLalchemy-如何从 sqlite 文件中提取表?
- api - YouTube 频道:列表 API 未按顺序返回
- firebase - Firebase 托管是否有请求限制?
- python-3.x - 有时在函数内部时,质数生成器最后不返回任何内容
- javascript - 查找值的 XML 节点位置的最简单方法是什么?
- c# - 如何在运行时创建新的父子游戏对象?