试图构建一个数组,该数组输出数据如下:
我尝试过循环使用“专门知识”/“文本”,但我无法让它们一起工作,从而在console.log中获得所需的输出
任何和所有的帮助都将不胜感激。
var items = [{
"item": {
"id": 0,
"sector": 'Data',
"expertise": ["Healthcare"],
"text": "Data-driven insights to improve healthcare"
}
},
{
"item": {
"id": 1,
"sector": 'Data',
"expertise": ["Healthcare", "Transport", "Cities"],
"text": "Urban Analytics"
}
}
}];
var array = [];
for (var i = 0; i < items.length; i++) {
var arr = [{
'title': items[i].item.sector,
'items': []
}];
for (var j = 0, b = items[i].item.expertise.length; j < b; j++) {
if (items[i].item.expertise[j] == expertise) {
arr[0]['items'].push({
'list': items[i].item.text
});
}
}
array.push(arr);
}
console.log(array);发布于 2019-01-28 00:38:02
我首先要建立一个相关专业知识和文本列表的对象,然后输出您想要的任何内容。例如:
var items = [{
"item": {
"id": 0,
"sector": 'Data',
"expertise": ["Healthcare"],
"text": "Data-driven insights to improve healthcare"
}
}, {
"item": {
"id": 1,
"sector": 'Data',
"expertise": ["Healthcare", "Transport", "Cities"],
"text": "Urban Analytics"
}
}]
const obj = items.reduce((res, { item }) => {
item.expertise.forEach(e => {
res[e] = res[e] || []
if(res[e].indexOf(item.text) < 0){ res[e].push(item.text) }
})
return res
}, {})
Object.keys(obj).forEach(k => {
console.log(k)
obj[k].forEach(text => console.log(`-- ${text}`))
})
发布于 2019-01-28 00:45:13
你应该用地图
const array = items.map(el => ({
text: el.item.sector,
items: [...el.item.expertise, {
list : el.item.text
}]
});发布于 2019-01-28 01:43:06
这里有另一种使用reduce()的方法,也可以使用destructuring和spread operator
var items = [
{
"item": {
"id": 0,
"sector": 'Data',
"expertise": ["Healthcare"],
"text": "Data-driven insights to improve healthcare"
}
},
{
"item": {
"id": 1,
"sector": 'Data',
"expertise": ["Healthcare", "Transport", "Cities"],
"text": "Urban Analytics"
}
}
];
let res = items.reduce((acc, {item: {expertise, text}}) =>
{
expertise.forEach(x => acc[x] = [...(acc[x] || []), text]);
return acc;
}, {});
Object.entries(res).forEach(([k, v]) =>
{
console.log(k + "\n->" + v.join("\n->"));
});
https://stackoverflow.com/questions/54394193
复制相似问题