如何按天拆分数组列表
const days = [
{'name':'Mon','value':1},
{'name':'Tue','value':5},
{'name':'Wed','value':10},
{'name':'Wed','value':30},
{'name':'Fri','value':18},
{'name':'Sat','value':80},
{'name':'Sat','value':90},
{'name':'Sun','value':20},
]
我在 wed 和 Sat 的日子里有上面的数组列表 我有 thu 的两个值 我没有值。如果日期不在列表中,我需要将重复的键值拆分为单独的数组我需要为此添加零值,例如我的输出将是
const result = [
[1,5,10,0,18,80,20],
[0,0,30,0,0,90,0]
]
我需要这样的结果是否可以用 javascript 完成。
最佳答案
您可以使用 native
执行此操作javascript.
算法很简单:
对于
daysArray
中的每一天您应该在给定的数组中搜索它,并且只搜索remove
第一次出现在days
.执行步骤 1 直到
days
是空的。也就是说,执行第1步直到days.length == 0
条件满足。
let days = [ {'name':'Mon','value':1}, {'name':'Tue','value':5}, {'name':'Wed','value':10}, {'name':'Wed','value':30}, {'name':'Fri','value':18}, {'name':'Sat','value':80}, {'name':'Sat','value':90}, {'name':'Sun','value':20} ], daysArray = ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'];
let result = [];
while(days.length){
sub_array = [];
daysArray.forEach(function(item){
let index = days.findIndex(a => a.name == item);
if(index == -1)
sub_array.push(0);
else{
sub_array.push(days[index].value);
days.splice(index, 1);
}
});
result.push(sub_array);
}
console.log(result);
关于javascript - 如何使用javascript按天将数组列表拆分为单独的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48396593/