javascript:将异常行为推入空数组
以下代码:javascript:将异常行为推入空数组,javascript,arrays,push,Javascript,Arrays,Push,以下代码: var arr1 = [1,2,3]; var obj1 = {}; for (var j = 0; j < arr1.length; j++) { if (obj1[j.toString()]) obj1[j.toString()] = obj1[j.toString()].push(j) else obj1[j.toString()] = [].push(j); } var arr1 = [1,2,3]; var obj1
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else
obj1[j.toString()] = [].push(j);
}
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else {
obj1[j.toString()] = [];
obj1[j.toString()].push(j);
}
}
我只是想知道为什么
(我现在知道以下代码:
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else
obj1[j.toString()] = [].push(j);
}
var arr1 = [1,2,3];
var obj1 = {};
for (var j = 0; j < arr1.length; j++) {
if (obj1[j.toString()])
obj1[j.toString()] = obj1[j.toString()].push(j)
else {
obj1[j.toString()] = [];
obj1[j.toString()].push(j);
}
}
)因为,Array.prototype.push()
方法返回的是数组长度,而不是数组本身
您可能更喜欢这样:
var arr1=[1,2,3];
变量obj2={}
对于(var j=0;j{0':[0],'1':[1],'2':[2]}
//较短版本
var obj3={}
对于(var j=0;j{0':[0],'1':[1],'2':[2]}
嗯,[]
与数组相同。prototype
,没有空数组,并且您没有在obj
中推进任何内容。第二个代码段是正确的方法,您实际上创建了一个空的arrayDid,但没有注意到第一个代码段+1确认。[1,2,3]。推(60);//4.[]推(90);//1.谢谢