【发布时间】:2020-05-12 16:16:36
【问题描述】:
我有一个对象数组,键是页面和链接,我希望最终结果按链接对页面进行分组。
我的代码是:
let Test =[
{page:'getting link 1', lien:['lienPage1HTTP_404V']},
{page:'getting link 2', lien:['lienPage2HTTP_404V1']},
{page:'getting link 3', lien:['lienPage3HTTP_404V3','lienPage3HTTP_404V']},
{page:'getting link 4', lien:['lienPage4HTTP_404V4']},
];
var sorted = {};
var Last1 =[];
var Last2 =[];
for( var i = 0; i< Test.length; i++ ){
if(Test[i].lien.length>1){
for(let k=0; k<Test[i].lien.length; k++){
Last1.push(({lien:Test[i].lien[k], page: Test[i].page}))
}
}
else {
Last2.push(Test[i])
}
}
var Last = Last1.concat(Last2);
for( var i = 0; i< Last.length; i++ ){
if( sorted[Last[i].lien] == undefined ){
sorted[Last[i].lien] = [];
}
sorted[Last[i].lien].push(Last[i].page)
}
当我尝试安慰 sorted 时,我得到:
[object Object] {
lienPage1HTTP_404V: ["getting link 1"],
lienPage2HTTP_404V1: ["getting link 2"],
lienPage3HTTP_404V: ["getting link 3"],
lienPage3HTTP_404V3: ["getting link 3"],
lienPage4HTTP_404V4: ["getting link 4"]
}
但我希望最终的结果会是:
[object Object] {
lienPage1HTTP_404V: ["getting link 1", "getting link 3"],
lienPage2HTTP_404V1: ["getting link 2"],
lienPage3HTTP_404V3: ["getting link 3"],
lienPage4HTTP_404V4: ["getting link 4"]
}
对于每个相同的键,我们都有他的值的数组。
我该如何解决?
【问题讨论】:
-
lienPage1HTTP_404V 和lienPage3HTTP_404V 有不同的键名,这也可能是问题(Page1 -> Page3)
标签: javascript arrays object group-by key