Javascript从数组函数中删除数据

时间:2016-05-03 11:10:22

标签: javascript

我有一个数组,这是它的外观:

{id:"1", videotype:"youtube", videoId:"y685gVGRQ98"},{id:"2", videotype:"youtube", videoId:"CtjuDJytD18"} 

每个条目都有一个Id。

我需要一个函数来删除属于所选Id的所有条目。

例如:

removeFromArray(2);

It would then remove all this: id:"2", videotype:"youtube", videoId:"CtjuDJytD18"

3 个答案:

答案 0 :(得分:1)

针对更新的问题进行了修改:

blacklistedId = 1;

newArray = oldArray.filter(function(value) {
    return value.id != blacklistedId;
});

答案 1 :(得分:1)

  

我的问题是......如何删除特定条目?

你可以写另一种方法

removeDataToArray: function(id, videotype, videoId) {
       var videoArray = JSON.parse(document.getElementById("videoLinksArray").innerHTML);
       //filter out item that matches the id, videoType and videoId
       videoArray = videoArray.filter( function(val){
          return !( val.id == id && val.videoType == videoType && val.videoId == videoId );
       });
       document.getElementById("videoLinksArray").innerHTML = JSON.stringify( videoArray );
},
  

它更像是:removeDataFromArray(id),它会知道   条目的唯一ID

然后过滤器将变为

       videoArray = videoArray.filter( function(val){
          return val.id != id;
       });

修改

  

removeFromArray(2);

     

然后它将删除所有这些:id:" 2",videotype:" youtube",   VIDEOID:" CtjuDJytD18"

removeDataToArray: function(id) {
       var videoArray = JSON.parse(document.getElementById("videoLinksArray").innerHTML);
       //filter out item that match the id
       videoArray = videoArray.filter( function(val){
          return val.id != String( id ) ;
       });
       document.getElementById("videoLinksArray").innerHTML = JSON.stringify( videoArray );
},

答案 2 :(得分:0)

考虑使用像underscore这样的实用程序库:

var desired_list = removeFromList([{id:"1", videotype:"youtube", videoId:"y685gVGRQ98"},{id:"2", videotype:"youtube", videoId:"CtjuDJytD18"}], "1");

function removeFromList(list, id) {
   return _.reject(list, function(val){return val.id == id});
}

享受