开发者社区> 问答> 正文

如何从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)

展开
收起
保持可爱mmm 2020-01-15 16:36:40 389 0
1 条回答
写回答
取消 提交回答
  • 如果这是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); }

    问题来源于stack overflow

    2020-01-15 16:36:54
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JavaScript面向对象的程序设计 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载