请帮我解决我的问题。我正在使用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()
内部使用原生数组方法,但片段结果真的很奇怪......
答案 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