2015-11-20 1 views
0

JSON А [ '711', '722', '733', '744']удалить JSON, который матч с другим JSON Javascript angularjs JSON

JSON В [{PID: 711, имя: 'Привет'} , {pid: 733, name: 'world'}, {pid: 713, name: 'hello'}, {pid: 744, name: 'hellosdaf'}]

попытаться делить массив B, который соответствует JSON A. like JSON B 711, 733, 744 соответствует массиву JSON A, я хочу удалить их.

Я пробую следующую функцию, но не работает, которая всегда имеет одну или две строки, пропускает удаление.

 angular.forEach(B, function(value, index){ 
       if(A.indexOf(value.pid) > -1){ 
      B.splice(index , 1); 

     } 
     }); 
+0

Вы используете индекс для удаления записи. Всякий раз, когда вы удаляете элемент, индекс перестраивается. Вместо того, чтобы удалять из B, нажмите несовпадающий элемент на новый массив. – Jules

+0

спасибо, что указал на мою проблему –

ответ

1

цикл через массив A, а затем отфильтровать массив B, используя функцию фильтра и использовать функцию итератора и возвращать только функцию, которая клавиша «PID» не совпадает.

for(var c of A){ 
    B = B.filter(function(n){ 
    return n.pid !== parseInt(c) 
    }); 
} 

надеюсь, что это помогает

+0

Большое вам спасибо, и сэкономлю свой день, спасибо –

Смежные вопросы