JS从数组中删除元素,没有间隙

时间:2013-04-10 08:42:26

标签: javascript

var myList = [];
myList.push({ololo: "ololo0"});
myList.push({ololo: "ololo1"});
myList.push({ololo: "ololo2"});
console.log(myList);

结果:

[Object { ololo="ololo0"}, Object { ololo="ololo1"}, Object { ololo="ololo2"}]

问题:如何删除第二个(myList[1])元素,没有间隙? 即:

myList[0] = {ololo: "ololo0"}
myList[1] = {ololo: "ololo1"}
myList[2] = {ololo: "ololo2"}

应该是:

myList[0] = {ololo: "ololo0"}
myList[1] = {ololo: "ololo2"}

5 个答案:

答案 0 :(得分:3)

您可以使用Splice

http://viralpatel.net/blogs/javascript-array-remove-element-js-array-delete-element/

你可以使用下面的这个功能

function removeByIndex(arr, index) {
   arr.splice(index, 1);
}

这是如何使用它

   var mynewArray =  removeByIndex(myList,1);

答案 1 :(得分:2)

试试这个:

删除不会做的伎俩。但Array.splice可以解决问题。

myList.splice(index,1)

答案 2 :(得分:2)

var myList = [];
myList.push({ololo: "ololo0"});
myList.push({ololo: "ololo1"});
myList.push({ololo: "ololo2"});
console.log(myList);

console.log(remove(myList,1));


function remove(arr, index){
    arr.splice(index,1);
    return arr;
}

工作示例 http://jsfiddle.net/qzFuj/

答案 3 :(得分:1)

使用splice

  

array.splice(index , howMany[, element1[, ...[, elementN]]])

     

更改数组的内容,在删除时添加新元素   旧元素。

删除第二个元素:myList.splice(1, 1)

答案 4 :(得分:-1)

这是您期望的和您想要的

如果您使用适合您的splice

var myList = [];
myList.push({ololo: "ololo0"});
myList.push({ololo: "ololo1"});
myList.push({ololo: "ololo2"});

  ///////////////////////splice IS APPLIED////////////////////////////
    myList.splice(0, 1)
  ///////////////////////////////////////////////////////////////////

console.log(myList);

输出(请注意,索引0已完全删除!)

[Object { ololo=

"ololo1"

}, 
Object { ololo=

"ololo2"

}]

如果您使用delete,它将不适合您!这就是它的样子!

  var myList = [];
    myList.push({ololo: "ololo0"});
    myList.push({ololo: "ololo1"});
    myList.push({ololo: "ololo2"});

  ////////////////DELETE IS APPLIED///////////////////////////////////
    delete myList[0]
 ////////////////////////////////////////////////////////////////////

    console.log(myList);

输出:(主要在索引0处查看未定义)

    [

    undefined

    , Object { ololo=

    "ololo1"

    }, Object { ololo=

    "ololo2"

    }]