我有一个带有一些值的JS对象/关联数组:
var array =[
{val:1,ref:10,rule:100},
{val:1,ref:12,rule:120},
{val:2,ref:13,rule:165},
];
我想执行.length,但希望能够根据其中一个键进行切片(例如val == 1)。我希望值的长度为val 1而不是整个对象的长度。我查看了参考资料,找不到满意的答案,我不确定这是否可行。
array.val==1.length = 2
像这样......
答案 0 :(得分:3)
对于与某个谓词匹配的元素,您希望.filter
数组:
var filteredArray = array.filter(function(element) { return element.val == 1 })
filteredArray.length // = 2
filter
将回调函数应用于数组中的每个元素,新过滤的数组包含原始数组中的所有元素,其中过滤器回调函数返回true
。这里,该函数返回true
属性为val
的所有元素的1
。
答案 1 :(得分:1)
您需要使用.filter()
:
array.filter(function(v){return v.val==1}).length