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

私はそれは次のようになります。出力配列toFormatに必要それを行う?形式の配列は

EDIT:ループはここにある

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 = []; ();};} console.log(var 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);
を行うことができますが、もちろんこの

// 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] + ")"); 
 
}

のように、for...ofループを使用することをお勧めしたいです

+1

MDNから:* concat()メソッドの代わりに代入演算子(+、+ =)を使用することを強くお勧めします。* –

+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

この1つのライナーの解決策では、es6の機能がかなり役に立ちます:) – WitVault

+0

補間をうまく使います! –

関連する問題