lodash中有一种简单的方法可以做到这一点:
const sampleSource = [
"String 1",
"String 2",
]
并得到这个:
[
{id: "String 1", text: "String 1"},
{id: "String 2", text: "String 2"},
]
我需要像这样格式化它,以传递给第三方反应组件。我已经玩过.map和.zipObject了,但是还无法正确处理。
我认为类似的方法应该起作用:
_.chain(sampleSource).map(s => ({ id: s, text: s })).value()
但这给了我
[
{
id: ["String 1", "String 2"],
text: ["String 1", "String 2"],
}
]
答案 0 :(得分:1)
类似这样的事情。 添加了链示例。
const sampleSource = [
"String 1",
"String 2",
]
let result = _.map(sampleSource, function(item) {
return {id: item, text: item};
});
console.log(result);
let result2 = _.chain(sampleSource).map(function(item) {
return {id: item, text: item};
});
console.log(result2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
答案 1 :(得分:0)
您不需要使用破折号,普通的JavaScript .map()
应该可以使用。
const sampleSource = [
"String 1",
"String 2",
];
const result = sampleSource.map(s => ({id: s, text: s}));
console.log(result);
答案 2 :(得分:-1)
lodash
中有一个名为keyBy的方法。
您可以像这样使用它
const sampleSource = [
"String 1",
"String 2",
];
const result = _.keyBy(sampleSource);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>