在javascript中将数组与对象键和组进行比较

我需要比较数组中的对象键需要根据键值进行分组

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},
]

我需要像这样分组

const result [[1],[5], [10, 30], [18], [80, 90], [20]]

我是javascript的新手我没有任何想法这样做.如果它可能在lodash是es6它会没事的.

解决方法:

您可以在同一天获取一个对象并过滤结果以获取仅填充的数组.

var 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 }], 
    slot = { Mon: 0, Tue: 1, Wed: 2, Thu: 3, Fri: 4, Sat: 5, Sun: 6 },
    result = [];

days.forEach(({ name, value }) => (result[slot[name]] = result[slot[name]] || []).push(value));

result = result.filter(Boolean);

console.log(result);
上一篇:javascript – 如何唯一地合并两个对象数组?


下一篇:javascript – 获取数组并使用翻转的索引/值创建对象