Добавить элемент из массива json, используя его имя / значение [duplicate]

0

Я знаю, как удалить элемент из массива json, но я не могу заставить его работать при добавлении.

Массив:

var users = [ 
{name: 'james', id: '1'}
]

Хотите добавить так:

  var users = [ 
  {name: 'james', id: '1'},
  {name: 'thomas', id: '2'}
  ]

Здесь код для удаления массива:

 Array.prototype.removeValue = function(name, value){
       var array = $.map(this, function(v,i){
       return v[name] === value ? null : v;
    });
    this.length = 0; //clear original array
    this.push.apply(this, array); //push all elements except the one we want to delete
    } 

   removeValue('name', value);
//space removed

Какие изменения мне нужно сделать, чтобы обратить вспять, чтобы добавить значения в массив?

  • 0
    Не путайте JSON (нотацию обмена текстовыми данными) с собственными массивами JavaScript. То, о чем вы спрашиваете, имеет такое же отношение к JSON, как кошки - к лимонам. Кроме того, ваш removeValue работает с массивом объектов, а не с произвольными массивами. Учитывая это, пожалуйста, уточните, как именно вы хотите добавить элемент «по имени / значению».
  • 0
    Извинения за неправильное использование терминов и синтаксиса. То, что я хочу, по сути противоположно этому (добавить вместо удаления): stackoverflow.com/questions/6310623/…
Показать ещё 4 комментария
Теги:
arrays

2 ответа

0

С Array.prototype.push()?

var sports = ["plongée", "baseball"];
var total = sports.push("football", "tennis");

console.log(sports); // ["plongée", "baseball", "football", "tennis"]
console.log(total);  // 4
0

Я думаю, что более подходящей функцией является filter чем map.

 Array.prototype.removeValue = function(name, value){
    var array = $.filter(this, function(v,i){
       return v[name] !== value;
    });
    this.length = 0; //clear original array
    this.push.apply(this, array); //push all elements except the one we want to delete
 }

Я только предполагаю, что длина и толчок работают, потому что я никогда не использовал их сам.

  • 0
    Это не то, о чем идет речь. ОП хочет добавить что-то в массив. Они только разместили код, чтобы показать, что они знают, как что-то удалить (хотя это совершенно не имеет значения).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню