根据键值计算对象长度

时间:2014-11-17 20:52:05

标签: javascript arrays associative-array

我有一个带有一些值的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

像这样......

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