Javascript 删除js中矩阵和为零的列

Javascript 删除js中矩阵和为零的列,javascript,algorithm,matrix,Javascript,Algorithm,Matrix,我有一个矩阵 data= [ [{id:1, value:0},{id:2, value:3},{id:3, value:0},{id:4, value:5}], [{id:1, value:7},{id:2, value:4},{id:3, value:0},{id:4, value:9}], ]; 我想删除那些在同一位置的value=0的对象(这里) 或者简单地删除一个和为零的列 输出: data= [ [{id:1, value:0}

我有一个矩阵

data= [
       [{id:1, value:0},{id:2, value:3},{id:3, value:0},{id:4, value:5}],
       [{id:1, value:7},{id:2, value:4},{id:3, value:0},{id:4, value:9}],
      ];
我想删除那些在同一位置的value=0的对象(这里) 或者简单地删除一个和为零的列

输出:

data= [
       [{id:1, value:0},{id:2, value:3},{id:4, value:5}],
       [{id:1, value:7},{id:2, value:4},{id:4, value:9}],
      ];

请指导我如何使用基于性能的方法来处理非常大的矩阵。

您需要使用
Array.filter
来过滤所需的数据。由于您的数据是二维数组,我正在使用
array.map
根据
.filter
的输出返回新的二维数组

const数据=[
[{id:1,值:8},{id:2,值:3},{id:3,值:0},{id:4,值:5}],
[{id:1,值:7},{id:2,值:4},{id:3,值:0},{id:4,值:9}],
]
const updatedata=data.map(行=>(
row.filter(column=>column.value)
))

console.log(updateData)
您需要检查列是否具有除零以外的其他值。Fehn过滤掉有无相关值的列

var data=[{id:1,值:0},{id:2,值:3},{id:3,值:0},{id:4,值:5}],{id:1,值:7},{id:2,值:4},{id:3,值:0},{id:4,值:9}],,
hasValues=data.reduce((r,a)=>a.map(({value},i)=>r[i]| | value),[]),
结果=data.map(a=>a.filter((u,i)=>hasValues[i]);
控制台日志(结果)

作为控制台包装{max height:100%!important;top:0;}
我会尝试使用它。但是这会删除任何值为零的对象。不仅仅是整个列,还可以使用data=[[{id:1,value:0}…rest same]]进行相同的尝试**为清晰起见,编辑了该问题。@VPR,请使用此版本,因为它可以防止将一些像零这样的和与相关值(如
-2
2
)混合使用。实际的版本只关注真实的价值观。