Javascript 有条件地连接两个数组?
我想加入两个长度相同的数组。然而,我希望将的每个元素与其对应元素连接起来,并使用组合值生成一个新数组Javascript 有条件地连接两个数组?,javascript,arrays,Javascript,Arrays,我想加入两个长度相同的数组。然而,我希望将的每个元素与其对应元素连接起来,并使用组合值生成一个新数组 // will always be string var array = [a, b, c, d] // Will always be number var array2 = [1, 2, 0, 4,] var output = [a1, b2, c0, d4] 然后我想编辑输出数组,删除0的任何值。 因此,我的最终输出应该是: var result = [a1, b2, d4]
// will always be string
var array = [a, b, c, d]
// Will always be number
var array2 = [1, 2, 0, 4,]
var output = [a1, b2, c0, d4]
然后我想编辑输出数组,删除0的任何值。
因此,我的最终输出应该是:
var result = [a1, b2, d4]
非常感谢您的任何想法和建议。使用地图和过滤器
演示
//将永远是字符串
变量数组=[a,b,c,d];
//永远都是数字
var array2=[1,2,0,4,3];
var result=array.maps,i=>[s,array2[i]]//组合值
.filters=>s[1]!=0//过滤掉0
.maps=>s.join//加入他们
console.logresult 检查此回复:
您可以使用.reduce和.push:
var arr1=['a','b','c','d'];
var arr2=[1,2,0,4];
函数createArrays,n{
返回n.reducea,c,i=>
/*如果当前值不为零,则合并并推送
*否则返回相同的数组
*/
c!=0?a.pushc+s[i],a:a
, [];
}
console.logcreateArrayarr1,arr2;请阅读,并向我们展示您迄今为止所做的尝试。可能重复的是您必须拥有输出数组,还是可以直接跳到结果?将不起作用。筛选出0元素后,索引将不再匹配。@RobbyCornelissen我已修复,请立即检查。
var result = array.map( (s, i) => [s , array2[i]] ) //combine values
.filter( s => s[1] != 0 ) //filter out 0s
.map( s => s.join("") ); //join them
// will always be string
var array = ["a", "b", "c", "d"]
// Will always be number
var array2 = [1, 2, 0, 4,]
function joinArraysCustom (firstArray, secondArray){
if(firstArray.length !== secondArray.length){
throw new Error('Arrays must match');
}
return firstArray.map(function(value, index){
return "" + value + secondArray[index];
}).filter(value => !value.endsWith('0'))
}
console.log(joinArraysCustom (array, array2));