我有一个数组,这是它的外观:
{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"
答案 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});
}
享受