gpt4 book ai didi

javascript map 对象值

转载 作者:行者123 更新时间:2023-11-29 16:58:04 25 4
gpt4 key购买 nike

我有一个对象数组:

[{a:1;b:2},{a:3;b:4},{a:5;b:6},{a:7;b:8},{a:9;b:10}]

输入是 a 的值,比如 1,我希望输出是相应 b 的值,例如返回 2。

我有一个简单的方法来遍历数组并返回结果。我想知道是否有更好的解决方案?就像将数组映射到 a 的值的数组,并获取输入的索引,然后使用我们获取的索引获取输出。

还有一种解释,a的值是相同的,不是值,举例说明问题。

例子:

INPUT: 1 OUTPUT:2

INPUT: 3 OUTPUT:4

INPUT: 5 OUTPUT:6

INPUT: 7 OUTPUT:8

我的代码是这样的:

var test=function(obj){
var a=obj.map(function(item){
return item.a;
})
return obj[a.indexof("1")].b;
}

最佳答案

您可以预处理对象数组以创建单个对象,它将 a 的值作为键,将 b 的值作为相应的值,其中 Array.prototype.reduce , 像这样

> var d = [{a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8}, {a: 9, b: 10}];
undefined
> var lookup = d.reduce(function (result, currentObject) {
... result[currentObject.a] = currentObject.b;
... return result;
... }, {});
undefined
> lookup
{ '1': 2, '3': 4, '5': 6, '7': 8, '9': 10 }

然后就可以从lookup中得到数字对应的值,像这样

> lookup[5]
6
> lookup[9]
10

如果您要查找的值不在lookup 中,您将得到undefined

> lookup[11]
undefined

关于javascript map 对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30673506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com