gpt4 book ai didi

javascript - 使用 underscore.js 进行对象转换

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

无论出于何种原因,我在尝试转换对象和数组时遇到了很多困难。

我的当前数据存储在一个 mongodb 集合中,如下所示:

[{ "_id" : 1, "name" : "someName", "colorName" : "Pink"},
{ "_id" : 2, "name" : "someName2", "colorName" : "RoyalBlue"},
{ "_id" : 3, "name" : "aThirdOne", "colorName" : "Gold"},
{ "_id" : 4, "name" : "oneMore", "colorName" : "LightGreen"}]

我需要获取以下两个数组之一,但想知道如何获取这两个数组。

[{ "value" : 1, "label" : "someName"},
{ "value" : 2, "label" : "someName2"},
{ "value" : 3, "label" : "aThirdOne"},
{ "value" : 4, "label" : "oneMore"]

[{1 : "someName"},
{2 : "someName2"},
{3 : "aThirdOne"},
{4 : "oneMore"}]

我知道这可能与 _.map 有关,但我不确定为什么我无法弄清楚。请指教。

最佳答案

你真的不需要下划线,这很正常 Array.prototype.map方法使用(虽然Underscore也提供了这个方法):

var data = [{ "_id" : 1, "name" : "someName", "colorName" : "Pink"},
{ "_id" : 2, "name" : "someName2", "colorName" : "RoyalBlue"},
{ "_id" : 3, "name" : "aThirdOne", "colorName" : "Gold"},
{ "_id" : 4, "name" : "oneMore", "colorName" : "LightGreen"}];

var result = data.map(function(el, i) {
return {value: el._id, label: el.name};
});

document.body.innerHTML = '<pre>' + JSON.stringify(result, null, 4) + '</pre>';

另请注意,您的第二个数据结构没有意义,因为它是不规则的,所以不要使用它,它一点也不方便。

这是相应的 Underscore 版本:

// Or Underscore version
var result = _.map(data, function(el) {
return {value: el._id, label: el.name};
});

关于javascript - 使用 underscore.js 进行对象转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34294150/

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