两个代码之间的差异

时间:2016-06-16 18:26:51

标签: javascript syntax

嘿伙计们,我很抱歉这个头衔,但我无法思考如何解释我的问题。

我想知道为什么这两个代码(对我而言是相同的),返回不同的结果:



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




我希望从第一个snnipet获得相同的结果。

感谢。

1 个答案:

答案 0 :(得分:3)

[].push返回数组的新长度而不是修改后的数组

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

您可以在其中创建包含该值的数组。