javascript - 改变我的数组的结构
问题描述
我想更改结果的结构。有对象“itemGroup”,我想删除它们并保留键“fruit”和“vegetable”。
[{"id": 1, "shop": "shop1", "itemGroup": {"fruit": 2, "vegetable": 2},"total":4},
{"id": 2, "shop": "shop2", "itemGroup": {"fruit": 0, "vegetable": 1},"total":1}]
我想要这个结果
[
{ "id": 1, "shop": "shop1", "fruit": 2, "vegetable": 2, "total": 4 },
{ "id": 2, "shop": "shop2" "fruit": 0, "vegetable": 1, "total": 1 }
]
我的代码
var myArray = [
{shop: "shop1",item1: "my apple 1",item2: "my carrot 1"},
{shop: "shop1",item1: "my apple 1",item2: "my carrot 1"},
{shop: "shop2",item1: "my apple 0",item2: "my carrot 0"},
{shop: "shop2",item1: "my apple 0",item2: "my carrot 1"}
];
var MyArrayDefinition = [
{item: "my apple 0",color: "red", group: "fruit",score: 0},
{item: "my carrot 1",color: "orange",group: "vegetable",score: 1},
{item: "my apple 1",color: "red", group: "fruit",score: 1},
{item: "my carrot 0",color: "orange",group: "vegetable",score: 0}
];
var k = Object.keys,
items = MyArrayDefinition.reduce((o, v) => (o[v.item] = v, o), {});
var shops = myArray.reduce((o, v, i, s) => (
s = v[k(v).find(k => k)],
s = o[s] || (o[s] = {
fruit: 0,
vegetable: 0,
}),
k(v).forEach(k => k.includes('item') &&
(s[(i = items[v[k]]).group] += i.score)), o), {});
var result = k(shops).map((k, i) => ({
id: i + 1,
shop: k,
itemGroup: shops[k],
total:Object.values(shops[k]).reduce((a, b) => a + b),
}));
解决方案
很像你最近几天的大多数问题。:-)
您可以映射数据,使用 Object.assign 并删除 itemGroup。
let x = f.map(e => {
e = Object.assign(e, e.itemGroup);
delete e.itemGroup;
return e;
})
console.log(x);
<script>
let f = [{
"id": 1,
"shop": "shop1",
"itemGroup": {
"fruit": 2,
"vegetable": 2
},
"total": 4
},
{
"id": 2,
"shop": "shop2",
"itemGroup": {
"fruit": 0,
"vegetable": 1
},
"total": 1
}
]
</script>
推荐阅读
- docusignapi - Docusign 中嵌入模板编辑中的受限区域
- reactjs - 我们如何将 WordPress 添加到 React App 的子目录中?
- database - 使用TDengine时插入和显示的时间戳相差8小时
- mongodb - MongoDB 日期字段不保存当前时间
- python-3.x - fake news detection using pickle
- python - TKinter: trigger buttons according to widget text
- php - 从 Laravel Sail 到其他主机的 HTTP 请求失败
- javascript - 我如何重构我的 JS 函数以确保这个 console.log 结构有效?
- python - 剧情传说消失了,我该如何解决?
- openstreetmap - 检查关系是否完全在区域内