2016-06-16 11 views
0

このタイトルは申し訳ありませんが、私の問題の説明方法は考えられません。私は、なぜこの2つのコードを(私にとっては同じことである)を知ってほしい2つのコードの違い

、異なる結果を返します。

var name = 'NAME'; 
 
var rules = [ 
 
    { name: 'NAME_RULES' } 
 
]; 
 

 
var x = [].push(rules.map(function(rule){ 
 
    return rule.name; 
 
})); 
 

 
document.body.innerHTML = x;

そして:

var name = 'NAME'; 
 
var rules = [ 
 
    { name: 'NAME_RULES' } 
 
]; 
 

 
var x = []; 
 
y = rules.map(function(rule){ 
 
    return rule.name; 
 
}); 
 
x.push(y); 
 

 
console.log(x);

私は最初のスニペットから同じ結果を得たいと思っています。

ありがとうございました。

+1

なぜ2番目の部分は使用しないのですか? –

+3

'[] .push'は、配列を返しません。 –

+2

' push'のドキュメントをチェックすると、戻り値がないことがわかります。 – Jashaszun

答えて

3

[].pushは、あなたはそれでその値を持つ配列を作成することができます

var x = [rules.map(function(rule){ 
    return rule.name; 
})]; 

配列でない修正された配列の新しい長さを返します。

関連する問題