Javascript映射到obj数组与另一个数组,以获得不同的键值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript映射到obj数组与另一个数组,以获得不同的键值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1209字,纯文字阅读大概需要2分钟。
内容图文
![Javascript映射到obj数组与另一个数组,以获得不同的键值](/upload/InfoBanner/zyjiaocheng/718/4713fa0003e04d5f8d4605ce69527ee5.jpg)
所以我不确定为什么我有这么困难的时间,但我有一个id数组,我试图用它来映射一个对象数组,以找到相应的id,但从不同的键返回值.
即:
arr = [13,1,16]
arrObj= [{
id: 1,
name: "cat"
}, {
id: 10,
name: "tiger",
}, {
id: 3,
name: "dog",
}, {
id: 16,
name: "bear",
}, {
id: 8,
name: "fish",
}, {
id: 13,
name: "goat",
}]
我希望它返回:
[“山羊”,“猫”,“熊”]
我有一个嵌套的map函数,它执行此操作但返回未定义的对象没有相应的ID.我可以从返回的数组中过滤掉未定义的内容,但似乎有更清晰/更有效的方法来执行此操作.
实现这一目标的最简洁方法是什么?
解决方法:
您可以使用Array#map并使用Array#find搜索相应的对象.然后将name作为返回值.
var arr = [13, 1, 16],
arrObj = [{ id: 1, name: "cat" }, { id: 10, name: "tiger" }, { id: 3, name: "dog" }, { id: 16, name: "bear" }, { id: 8, name: "fish" }, { id: 13, name: "goat" }],
result = arr.map(id => arrObj.find(o => o.id === id).name);
console.log(result);
对于大量数据,您可以使用Map并通过映射键值对来构建它,然后映射地图的结果.
var arr = [13, 1, 16],
arrObj = [{ id: 1, name: "cat" }, { id: 10, name: "tiger" }, { id: 3, name: "dog" }, { id: 16, name: "bear" }, { id: 8, name: "fish" }, { id: 13, name: "goat" }],
result = arr.map(
Map.prototype.get,
new Map(arrObj.map(({ id, name }) => [id, name]))
);
console.log(result);
内容总结
以上是互联网集市为您收集整理的Javascript映射到obj数组与另一个数组,以获得不同的键值全部内容,希望文章能够帮你解决Javascript映射到obj数组与另一个数组,以获得不同的键值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。