为了账号安全,请及时绑定邮箱和手机立即绑定

如何从JavaScript中的对象数组中获得不同的值?

如何从JavaScript中的对象数组中获得不同的值?

繁星点点滴滴 2019-07-17 09:26:27
如何从JavaScript中的对象数组中获得不同的值?假设我有以下情况: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)
查看完整描述

3 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

如果这是PHP,我会用键构建一个数组,然后array_keys最后,但JS没有这样的奢侈。相反,尝试如下:

var flags = [], output = [], l = array.length, i;for( i=0; i<l; i++) {
    if( flags[array[i].age]) continue;
    flags[array[i].age] = true;
    output.push(array[i].age);}


查看完整回答
反对 回复 2019-07-17
  • 3 回答
  • 0 关注
  • 512 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信