Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 合并包含null和object元素的两个数组?_Javascript_Arrays_Ecmascript 6 - Fatal编程技术网

Javascript 合并包含null和object元素的两个数组?

Javascript 合并包含null和object元素的两个数组?,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,如果我有两个javascript数组 const a = [null,null,{a:1}]; const b = [{c:3},null,{a:3,b:2}]; 我想要一个可以返回以下结果的函数 [{c:3},null,{a:3,b:2}] 上述情况仍然适用于以下情况 const a = []; const b = [null,null,{t:4}]; 我想得到以下结果 [null,null,{t:4}] 有人能帮我吗?谢谢 const a=[]; 常数b=[null,null,{t

如果我有两个javascript数组

const a = [null,null,{a:1}];
const b = [{c:3},null,{a:3,b:2}];
我想要一个可以返回以下结果的函数

[{c:3},null,{a:3,b:2}]
上述情况仍然适用于以下情况

const a = [];
const b = [null,null,{t:4}];
我想得到以下结果

[null,null,{t:4}]
有人能帮我吗?谢谢

const a=[];
常数b=[null,null,{t:4}];
常数c=[…a,…b];

控制台日志(c)Concat或Spread操作员应执行此操作

const a1=[];
常量b1=[null,null,{t:4}];
常量结果1=[…a1,…b1];
console.log(result1);
常数a2=[null,null,{a:1}];
常量b2=[{c:3},null,{a:3,b:2}];
常量结果2=[…a2,…b2];

console.log(result2)看起来您希望合并输入数组中具有相同索引的对象:

函数合并(a、b){
const merged=[];
for(设i=0;ilog(merge([],[null,null,{t:4}])您也可以通过检查falsy值来合并项目

const
合并=(…a)=>a.reduce(
(r,a)=>(a.forEach((o,i)=>r[i]=o | | | r[i]| | | | r[i]&&o),r),
[]
);
log(merge([null,null,{a:1}],{c:3},null,{a:3,b:2}]);
log(merge([],[null,null,{t:4}])

.as console wrapper{max height:100%!important;top:0;}
我想将处理分为两部分:

constzipWith=(fn)=>(a,b)=>[…数组(Math.max(a.length,b.length))]
.map((u,i)=>fn(a[i],b[i]))
const combine=zipWith((a,b)=>
a&&b{…a,…b}:a{…a}:b{…b}:null)
log(组合([null,null,{a:1}],[c:3},null,{a:3,b:2}]))
log(combine([],[null,null,{t:4}]))

。作为控制台包装{max height:100%!important;top:0;}
您能解释一下“合并两个数组”的意思吗。在第一个示例中,
{a:1}
不在结果列表中。您尝试过.concat()吗?还是传播语法?什么?你不喜欢A1?你喜欢不同的酱汁吗?嗯,
[…a,…b]
没有提供你想要的吗?你试过什么?此外,你可以使用
const c=a.concat(b)
console.log(c)
在snippet@OnurArı当你评论我的帖子时,我正在更新我的帖子:PDid你检查问题中的第一个例子产生了什么?@trincot是的,但我觉得这看起来像是一个打字错误。请参阅OpThank告诉我的预期输出。这就是我想要的!别忘了。