使用Javascript中的字符串和数字数组减少多维

问题描述

我对reduce的工作原理有所了解,但是多维数组存在问题。我该如何减少这种情况:

y = [['x',0.5],['x',['z',2],2]];

对此:

y = [['x',1],4]];

谢谢!

解决方法

您可以使用存储键和的累积对象进行归约,然后使用Object.entries()将其转换回数组array

const y = [
  ["x",0.5],["x",["z",2],]

const res = Object.entries(
  y.reduce((acc,[key,value]) => {
    acc[key] = (acc[key] || 0) + value
    return acc
  },{})
)

console.log(res)