Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用lodash将键/值对转换为对象_Javascript_Lodash - Fatal编程技术网

Javascript 使用lodash将键/值对转换为对象

Javascript 使用lodash将键/值对转换为对象,javascript,lodash,Javascript,Lodash,我有一组键/值对,我想将它们转换为对象。使用lodash的最佳方法是什么 maps: { "Recipe1" : ["Sugar", "Milk", "Bread"], "Recipe2" : ["Rice", "Salt", "Carrots"] } 寻找一个像下面这样的 { name: "Recipe1", ingredients: ["Sugar", "Milk", "Bread"] }, { name: "Recipe2", ingredients: ["Ri

我有一组键/值对,我想将它们转换为对象。使用lodash的最佳方法是什么

maps: {
  "Recipe1" : ["Sugar", "Milk", "Bread"],
  "Recipe2" : ["Rice", "Salt", "Carrots"] 
}
寻找一个像下面这样的

{
  name: "Recipe1",
  ingredients: ["Sugar", "Milk", "Bread"]
},
{
  name: "Recipe2",
  ingredients: ["Rice", "Salt", "Carrots"]
}
可以使用获取键/值对数组。使用迭代pairs数组。用于获取
名称
成分
参数,并使用以下内容创建结果对象:

const映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
};
const result=Object.entries(映射)
.map(([name,Components])=>({name,Components}));
控制台日志(结果)可用于获取键/值对数组。使用迭代pairs数组。用于获取
名称
成分
参数,并使用以下内容创建结果对象:

const映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
};
const result=Object.entries(映射)
.map(([name,Components])=>({name,Components}));

控制台日志(结果)对于返回的对象,如果不使用lodash、使用、和,这是非常简单的:

const映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
}
常量输出=Object.entries(maps.map)(
([name,Components])=>({name,Components})
)

console.log(output)
对于返回的对象,如果没有lodash,使用、a和,这是非常简单的:

const映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
}
常量输出=Object.entries(maps.map)(
([name,Components])=>({name,Components})
)
console.log(输出)
带Lodash:

var映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
};
var输出=u2;.map(映射,函数(值,键){
返回{name:key,components:value};
});
控制台日志(输出)
含Lodash的

var映射={
“Recipe1”:[“糖”、“牛奶”、“面包”],
“Recipe2”:[“大米”、“盐”、“胡萝卜”]
};
var输出=u2;.map(映射,函数(值,键){
返回{name:key,components:value};
});
控制台日志(输出)

对于输出,您的意思是
映射:[{name:…,components:…},{name:…,components:…}]
const result=Object.keys(maps).map(k=>({name:k,components:maps[k]})对于输出,您是指
映射:[{name:…,components:…},{name:…,components:…}]
const result=Object.keys(maps).map(k=>({name:k,components:maps[k]})
。.map(maps,(配料,名称)=>({name,配料}))
不那么冗长。@PatrickRoberts确实如此。当我回答带有
Lodash
标记的问题时,为了那些习惯于使用Lodash的人的利益,我尝试遵循Lodash中一贯使用的语法。另外,就个人而言,我不太喜欢参数名称对输出至关重要的函数。
。.map(maps,(components,name)=>({name,components}))
的详细程度要低得多。@PatrickRoberts确实如此。当我回答带有
Lodash
标记的问题时,为了那些习惯于使用Lodash的人的利益,我尝试遵循Lodash中一贯使用的语法。另外,就我个人而言,我不太喜欢参数名称对输出至关重要的函数。