假设这是我的json的样子,它包含一个数组:
{
"status": {
"time": 175
},
"hits": [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
},
]
}我想在react中创建一个这样的映射数组:
[
{mapkey1: value1, mapkey2: value2},
{mapkey1: value1, mapkey2: value2},
{mapkey1: value1, mapkey2: value2},
]我已经在源json中有了mapkeys到它们的xpath的映射:
{
mapkey1: xpath1,
mapkey2: xpath2
}如何使用Lodash将此映射解析为另一个数组?
我知道在没有数组的情况下该怎么做:
_.mapValues(
xpathsMap,
paths => _.get(data, paths),
);发布于 2018-01-16 17:20:40
var arr = [
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
},
];
var output = [];
_.forEach(arr, function(obj) {
var keys = Object.keys(obj);
var ob = {};
_.forEach(keys, function(key) {
ob['map' + key] = obj[key];
})
output.push(ob);
});
console.log(output);这将为您提供所需的输出-
[
{mapkey1: "value1", mapkey2: "value2"},
{mapkey1: "value1", mapkey2: "value2"},
{mapkey1: "value1", mapkey2: "value2"}
]发布于 2018-01-16 17:42:22
使用Array#map创建新的对象数组。使用lodash的_.mapKeys()创建所需的对象键
const data = {"status":{"time":175},"hits":[{"key1":"value1","key2":"value2"},{"key1":"value1","key2":"value2"},{"key1":"value1","key2":"value2"}]}
const result = data.hits.map((o) => _.mapKeys(o, (val, key) => `map${key}`));
console.log(result);<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
https://stackoverflow.com/questions/48277294
复制相似问题