Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中生成新数组_Javascript_Loops - Fatal编程技术网

两个数组结果在Javascript中生成新数组

两个数组结果在Javascript中生成新数组,javascript,loops,Javascript,Loops,这是我的两个数据阵列: var array1 = ["test","test1","test2"]; var array2 = ["test3","test4","test5"]; 我需要压缩数组以获得以下结果: array3["test","test3","test1","test4","test2","test5"] 如何存档此文件?考虑到这两个数组可以有不同数量的元素 var array1=[“测试”、“测试1”、“测试2”]; var array2=[“test3”、“test4”

这是我的两个数据阵列:

var array1 = ["test","test1","test2"];
var array2 = ["test3","test4","test5"];
我需要压缩数组以获得以下结果:

array3["test","test3","test1","test4","test2","test5"]

如何存档此文件?

考虑到这两个数组可以有不同数量的元素

var array1=[“测试”、“测试1”、“测试2”];
var array2=[“test3”、“test4”、“test5”];
var maxLength=Math.max(array1.length,array2.length)
var array3=[];
对于(变量索引=0;索引控制台日志(array3)您可以转换数组并将结果平坦化

var array1=[“测试”、“测试1”、“测试2”],
array2=[“test3”、“test4”、“test5”],
结果=[array1,array2]
.reduce((r,a)=>a.map((v,i)=>[…(r[i]|[]),v]),[]))
.减少((a,b)=>a.concat(b));
控制台日志(结果)我建议简洁地实现这一点

让数组1=[“test”、“test1”、“test2”];
设array2=[“test3”、“test4”、“test5”];
常数Weaverays=(阵列1,阵列2)=>{
//仅允许相同长度的数组
if(array1.length==array2.length){
返回数组1.reduce((acc,v,i)=>{
附件推送(v,阵列2[i]);
返回acc;
}, []);
}否则{
console.warn('传递给“weaveArrays”的数组长度必须相等');
返回[];
}
}

log(weaverarys(array1,array2))您可以找到最小长度,处理索引小于最小长度的元素,然后从最小长度索引附加元素

var array1=[“测试”、“测试1”、“测试2”、“测试6”];
var array2=[“test3”、“test4”、“test5”];
var array1_length=array1.length;
var array2_length=array2.length;
var minLength=Math.min(数组1_长度,数组2_长度);
var结果=[];
对于(变量索引=0;索引阵列2_长度){
结果=result.concat(array1.slice(index));
}
if(阵列长度>阵列长度){
结果=result.concat(array2.slice(index));
}

控制台日志(结果)如果array1有2个元素而array2有4个元素会怎么样?在我的第一个示例中,它会检查元素是否存在并安全地推送该值。在我当前的迭代中,我只允许相同长度的数组。取决于OP想要什么谢谢你的帮助。。。那个阵列1,阵列2是动态形成的。最后一排也是动态的。。我很乐意帮忙:)