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
)混合使用。实际的版本只关注真实的价值观。