簡體   English   中英

有條件地連接兩個數組?

[英]Join two arrays conditionally?

我想加入 2 個相同長度的數組。 但是,我想將 的每個元素與其對應的元素連接起來,並使用組合值生成一個新數組。

// 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] 

非常感謝任何想法和建議。

使用mapfilter

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, ]; 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 console.log(result);

檢查此副本: https : //repl.it/@Freundschaft/MeagerNocturnalFormats

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

你可以使用.reduce().push()

 var arr1 = ['a', 'b', 'c', 'd']; var arr2 = [1, 2, 0, 4]; function createArray(s, n) { return n.reduce((a, c, i) => ( /* combine and push if current value is not zero * otherwise return same array */ c != 0 ? (a.push(c + s[i]), a) : a ), []); } console.log(createArray(arr1, arr2));


有用的資源:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM