[英]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]
非常感謝任何想法和建議。
使用map
和filter
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.