在Underscore.js中使用数组原型方法

时间:2011-11-15 18:02:17

标签: underscore.js

请帮我解决我的问题。我正在使用underscore.js lib,我有a snippet来证明我遇到了什么问题:

var a = [4, 3, 2, 1];
var b = _(a).select(function(el){ return el>1; }).push(6);
console.log("b: "+b);
// b: 4
var c = _(a).select(function(el){ return el>1; });
c.push(6);
console.log("c: "+c);
// c: [4, 3, 2, 6]

发生了什么事?为什么select()函数返回一些奇怪的东西 - 比如一个带整数键的对象。但是当我们放置select()的结果时,我们可以再次使用数组本机方法。为什么?它是什么? 我知道我们可以在chain()内部使用原生数组方法,但片段结果真的很奇怪......

1 个答案:

答案 0 :(得分:1)

这是因为push方法返回将值插入数组的索引。 有关详细信息,请参阅push method documentation b变量与:

相同
var c = _(a).select(function(el){ return el>1; });
c = c.push(6);
console.log("c: "+c);
// c: 4