gpt4 book ai didi

javascript - 使用类似于 Array.prototype.map() 的方法将数组转换为键值对象?

转载 作者:行者123 更新时间:2023-11-30 12:31:30 24 4
gpt4 key购买 nike

是否有任何Array方法类似于Array.prototype.map接受一个数组并将其转换为键值对象?

这是一个例子:

var people = [{name: 'person1', tableId: 1}, {name: 'person2', tableId: 2}];
var table = [{id:1, shape:2, title: 'table1'}, {id:2, shape:4, title: 'table2'}];

我想创建一个 table-people 对象,其中键是一个 id,值是所有具有相关 tableId 的人。

输出示例如下:

var output = {
1: [{name: 'person1', tableId: 1}, <more people>],
2: [{name: 'person2', tableId: 2}}, <more people>]
};

output 将是一个键值对象。键是 tableId,值是一组人。一个人有更多的信息(除了 name 和 tableId - 这只是一个简单的例子)。

现在最简单的方法是:

var output = {};
for(var i = 0 ; i < table.length ; i++)
{
output[table.id] = getPeopleThatSitInTable(table.id); // will return an array
}

有没有这样的方法:

table.keyValueMapObject(function(item){
return { key: item.id, value: getPeopleThatSitInTable(item.id) }
});

这个方法会在后台创建一个对象,根据key&value填充并返回对象?

不是在寻找类似的东西:

var obj = {}; // declaring an object
// loop somehow and fill obj(for\foreach\map\reduce etc.)

因为使用 for 以“最佳方式”做同样的事情。

我正在寻找类似的东西:

var obj = table.methodName(filterFunction)

最佳答案

检查 _.groupBy()来源。它完全符合您的要求。

关于javascript - 使用类似于 Array.prototype.map() 的方法将数组转换为键值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27577618/

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