var arr = [{'name':'彭于晏','age':25},{'name':'吴彦祖','age':35},{'name':'陈冠希','age':28},{'name':'陈伟霆','age':36},{'name':'angelababy','age':25},{'name':'黄晓明','age':28}];
for(var i=0;i<arr.length;i++){
if(arr[i].name=='陈冠希'){
arr.splice(i,0,{'name':'范冰冰','age':30});
}
}
console.log(arr)
RT 为什么这个循环变成死循环了?
很明显你的
splice
用的有问题。splice
第二个参数表示删除多少个元素,如果设置0,则陈冠希一直没有删除,导致一直再循环,且此时陈冠希是一直往后移动的。如果你想留着陈冠希,那就需要在陈冠希后面加上范冰冰
for循环中,把splice的第二个参数改成1即可。