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));