gpt4 book ai didi

javascript - 使用 JavaScript 映射键/值

转载 作者:行者123 更新时间:2023-11-29 16:15:01 24 4
gpt4 key购买 nike

有没有办法使用Javascript映射数组中的键和值?在我看来,它类似于 jQuery .map()。 ,但不仅映射值,还“映射”键。

假设我有以下数组:

var names = [ 1, 2, 3, 4, 5 ];

我喜欢使用我创建的名为 numberToName() 的函数并从中生成另一个数组,结果应该是这样的:

var names = { "one": 1, "two": 2, "three": 3, "four": 4, "five": 5 };

目前我使用的是以下方法:

var names = [ 1, 2, 3, 4, 5 ],
names_tmp = {},
names_i = 0,
names_len = names.length;

for(; names_i < names_len; names_i++) {
names_tmp[numberToName(names[names_i])] = names[names_i];
}

问题是:有没有办法(最好是原生的)改进这个方法?我什至可以毫无问题地使用 jQuery。可能是类似这样的功能:

var names = jQuery.mapKeys([ 1, 2, 3, 4, 5], function(k, v) {
return { key: numberToName(v), value: v };
});

最佳答案

你正在寻找reduce:

var names = [1, 2, 3, 4, 5].reduce(function(obj, k) {
return obj[numberToName(k)] = k, obj;
}, {});

return obj[numberToName(k)] = k, obj 是一种写赋值 + return 的简写方式(当然可读性较差):

     obj[numberToName(k)] = k;
return obj;

一个简单的 forEach 也可以完成这项工作:

names = {};
[1, 2, 3, 4, 5].forEach(function(k) {
names[numberToName(k)] = k
})

如果你愿意,你也可以用同样的方式使用 jquery 的 $.each

关于javascript - 使用 JavaScript 映射键/值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17981028/

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