удалить элемент из массива, используя его имя / значение

У меня есть следующий массив

var countries = {};

countries.results = [
    {id:'AF',name:'Afghanistan'},
    {id:'AL',name:'Albania'},
    {id:'DZ',name:'Algeria'}
];

Как мне удалить элемент из этого массива, используя его имя или идентификатор?

Спасибо

26
задан Felix Kling 22 March 2016 в 16:20
поделиться

3 ответа

Создана удобная функция для этого ..

function findAndRemove(array, property, value) {
  array.forEach(function(result, index) {
    if(result[property] === value) {
      //Remove from array
      array.splice(index, 1);
    }    
  });
}

//Checks countries.result for an object with a property of 'id' whose value is 'AF'
//Then removes it ;p
findAndRemove(countries.results, 'id', 'AF');
52
ответ дан 28 November 2019 в 06:03
поделиться

Попробуйте это. (IE8 +)

//Define function
function removeJsonAttrs(json,attrs){
    return JSON.parse(JSON.stringify(json,function(k,v){
        return attrs.indexOf(k)!==-1 ? undefined: v;
}));}
//use object
var countries = {};
countries.results = [
    {id:'AF',name:'Afghanistan'},
    {id:'AL',name:'Albania'},
    {id:'DZ',name:'Algeria'}
];
countries = removeJsonAttrs(countries,["name"]);
//use array
var arr = [
    {id:'AF',name:'Afghanistan'},
    {id:'AL',name:'Albania'},
    {id:'DZ',name:'Algeria'}
];
arr = removeJsonAttrs(arr,["name"]);
2
ответ дан 28 November 2019 в 06:03
поделиться

это сработало для меня ..

countries.results= $.grep(countries.results, function (e) { 
      if(e.id!= currentID) {
       return true; 
      }
     });
0
ответ дан 28 November 2019 в 06:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: