gpt4 book ai didi

javascript - 如何使用数组和 map 函数构建 javascript 对象?

转载 作者:可可西里 更新时间:2023-11-01 02:00:40 24 4
gpt4 key购买 nike

我有一个 channel 数组,我想将其转换成一个单个对象 (channelSettings),每个 channel 都有一个 true/false 属性

我已经使用下面的代码让它工作了,但它看起来很冗长。如果没有“临时”变量,有没有办法做到这一点?如果我可以驾驭它,那么我也可以驾驭自执行功能。

var channels = ["TV", "Billboard", "Spot TV"];


var channelSettings = function() {
var temp = {};

channels.map(function(itm, i, a) {
var channel = itm.toLowerCase().replace(" ", "");
temp[channel] = false;
});

return temp;
}();

我想我正在尝试让 map 函数返回一个具有属性的对象而不是一个数组。这可能吗?是误导了吗?有什么建议吗?

这就是我希望它最终看起来的样子:

var channels = ["TV", "Billboard", "Spot TV"];

var channelSettings = channels.map(function(itm, i, a) {
var channel = itm.toLowerCase().replace(" ", "");
return ????;
});

最佳答案

改用 .reduce() 函数。

var channelSettings = channels.reduce(function(obj, itm) {
var channel = itm.toLowerCase().replace(" ", "");
obj[channel] = false;

return obj;
}, {});

演示: http://jsfiddle.net/MjW9T/


第一个参数引用之前返回的项目,除了第一次迭代,它引用数组中的第一个项目,或者我们作为空对象提供的种子项目。

第二个参数引用数组中的当前值。只要我们始终返回 obj,第一个参数将始终是该对象,最终返回值也是如此。

关于javascript - 如何使用数组和 map 函数构建 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006748/

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