假设我有以下内容:
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
能够获得所有不同年龄的数组的最佳方法是什么,这样我得到以下结果数组:
[17, 35]
有什么办法可以替代地构造数据或更好的方法,这样我就不必遍历每个数组检查“ age”的值并检查另一个数组是否存在,如果没有,可以添加它?
如果有某种方法,我可以不重复就退出不同的年龄...
我想改善当前无效的方法...如果这意味着不是“数组”是对象数组,而是带有一些唯一键(即“ 1,2,3”)的对象“映射”也可以 我只是在寻找最高效的方式。
以下是我目前的操作方式,但是对我来说,即使迭代确实有效,迭代似乎也很糟糕。
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
Set
object和map
s是浪费的。这项工作只是一个简单的.reduce()
阶段。