Javascript 合并/展平多维数组并删除重复项

Javascript 合并/展平多维数组并删除重复项,javascript,arrays,multidimensional-array,Javascript,Arrays,Multidimensional Array,我有一个多维数组,如下所示: var workouts = [ [0, Object, 0, 0, 0], [Object, 0, 0, 0, 0], [0, 0, 0, Object, 0] ]; [Object, Object, 0, Object, 0] 我想展平/合并阵列并删除重复项。结果应该如下所示: var workouts = [ [0, Object, 0, 0, 0], [Object, 0, 0, 0, 0], [0, 0, 0, Object,

我有一个多维数组,如下所示:

var workouts = [
  [0, Object, 0, 0, 0],
  [Object, 0, 0, 0, 0],
  [0, 0, 0, Object, 0]
];
[Object, Object, 0, Object, 0]
我想展平/合并阵列并删除重复项。结果应该如下所示:

var workouts = [
  [0, Object, 0, 0, 0],
  [Object, 0, 0, 0, 0],
  [0, 0, 0, Object, 0]
];
[Object, Object, 0, Object, 0]

可以执行吗?

我的理解是,如果第一个遇到的对象存在,您希望将其保留在给定列中

您可以使用
.map()
.reduce()

var训练=[
[0,{id:1},0,0,0],
[{id:2},0,0,0,0],
[0,0,0,{id:3},0]
];
var res=训练。减少(功能(a,b){
返回b.map(函数(e,i){返回对象的[i]实例?a[i]:e;});
}, []);
log(JSON.stringify(res))
var训练=[
[0,{id:1},0,0,0],
[{id:2},0,0,0,0],
[0,0,0,{id:3},0]
];
函数数组(数组){
var newArray=[];
对于(i=0;i

我想这样做

var训练=[[0,{a:1},0,0,0],
[{b:2},0,0,0,0],
[0,0,0,{c:3},0]
],
结果=训练。减少((p,c)=>p=c.map((e,i)=>e | | p[i]| | 0),[]))

console.log(result);
晚会迟到了,但我仍然想利用:

  • 为了将尺寸减小到1
  • 用于删除重复项
  • 用于从该集合中获取阵列
  • JSON.stringify
    并重新解析以处理重复的对象
以下是代码和一个非常鼓舞人心的帖子:

const myArray=[
[0,{id:1},0,0,0],
[{id:2},0,0,0,0],
[0,0,0,{id:2},0]
]
常量myFlatArray=myArray.flat()
const result=[…新集合(myflatary.map(JSON.stringify))].map(JSON.parse)

console.log(JSON.stringify(结果))
您如何定义删除重复项?为什么结果中有两次0,这不是重复项?您尝试了什么?预期输出中只有2个零。是吗?它应该有3个零,不是吗?是的,预期输出中应该有2个零。我的计划是循环预期输出,然后呈现不同的元素ts取决于0/对象。如果内部数组在该索引处有onbect,是否映射内部数组的索引并用对象标记索引?如果没有,则标记为0?我什么都不懂:(所有内联代码和非解释性变量都使其非常难以读取。)