2016-11-21 43 views
1
var toFormat = [[1, "one", "unu"], [2, "two", "du"], [3, "three", "tri"], [4, "four", "kvar"]]; 

我需要輸出數組toFormat所以它應該是這樣的:格式陣列輸出的Node.js

1 (one) 
2 (two) 
3 (three) 
4 (four) 

(不使用每個子陣列的第三個要素) 如何去做?

編輯:循環是這裏

var res = []; 
for(var i=0;i<toFormat.length;i++){ 
    res.push(toFormat[i][1]+" ("+toFormat[i][2]+")"); 
} 
console.log(res.join("\n")) 
+0

嘗試過的循環,但我真的不認爲這會工作 –

+1

發表你的循環。 –

+0

var res = [];爲了(var i = 0; i

回答

1

有一噸的方法可以做到這一點。我個人建議使用for...of循環,這樣

// defining the array to loop over 
 
const toFormat = [ 
 
    [1, 'one', 'unu'], 
 
    [2, 'two', 'du'], 
 
    [3, 'three', 'tri'], 
 
    [4, 'four', 'kvar'] 
 
]; 
 

 
for (let i of toFormat) { 
 
    console.log(i[0] + " (" + i[1] + ")"); 
 
}

當然,如果你想這是一個字符串,而不是正在打印,你可以做到這一點,而不是

// defining the array to loop over 
 
const toFormat = [ 
 
    [1, 'one', 'unu'], 
 
    [2, 'two', 'du'], 
 
    [3, 'three', 'tri'], 
 
    [4, 'four', 'kvar'] 
 
]; 
 

 
let formatted = ""; 
 
for (let i of toFormat) { 
 
    formatted += (i[0] + " (" + i[1] + ")\n"); 
 
} 
 
console.log(formatted);

+1

從MDN開始:*強烈建議使用賦值運算符(+,+ =)而不是concat()方法* – 2016-11-21 20:52:11

+0

@torazaburo感謝您的建議!我不知道。我會解決我的答案,使用'+'而不是'concat'。 –

0

首先,你必須省略了最後一個索引的收盤報價的最後一個陣列英寸

不過除此以外,該[Array.prototype.forEach()]方法可以do the trick

var toFormat = [[1, "one", "unu"], [2, "two", "du"], [3, "three", "tri"], [4, "four", "kvar"]]; 
 
    
 
toFormat.forEach(function(item, index, arry){ 
 
    console.log(item[0] + " (" + item[1] + ")"); 
 
}); 
 
                     

3

const toFormat = [ 
 
    [1, "one", "unu"], 
 
    [2, "two", "du"], 
 
    [3, "three", "tri"], 
 
    [4, "four", "kvar"]]; 
 

 
const result = toFormat.map(([val, string]) => `${val} (${string})`).join('\n'); 
 

 
console.log(result);

+1

在這一個班輪解決方案有相當不錯的使用es6功能:) – WitVault

+0

很好的使用插值! –