2017-02-08 2 views
0

У меня есть объект, и внутри объекта мне нужно deleteaddress из массива объектов с помощью javascript.удалить объект в массиве

obj = { 
     "name":1, 
     "Details":[ 
      { 
       "mname":"text here", 
       "sname":"text here", 
       "address":"text", 
       "saddress":"text" 
      } 
     ] 
     } 

Я попытался следующие, но не повезло:

delete obj.Details.address 

и

delete obj.Details[0].address 
+2

Последний должен работать без проблем – haim770

+0

Должно быть, что-то не так с тем, как я мог структурировать проект, но последний теперь работает, спасибо за вашу помощь всем –

ответ

3

ваша структура объекта неправильно

obj = { 
    "name":1, 
    "Details":[ 
     { 
      "mname":"text here", 
      "sname":"text here", 
      "address":"text", 
      "saddress":"text" 
     } 
    ] 
    } 

он должен быть «адрес»: «текст», в виде строки, то

delete obj.Details[0].address 

будет работать.

+0

Я не думаю, что это проблема! –

+0

моя ошибка, это была опечатка, цитаты есть –

+0

см. Рабочую скрипку здесь https://jsfiddle.net/jituce/hp94L513/1/ – jjj

1

не Вы уверены, что это не работает?

delete obj.Details[0].address 

Я только что попробовал в хром-консоли, и это работает. Может быть, вы не отладки правильно

1

Если вы хотите удалить adress свойство всех объектов внутри Details массива, то сделайте это с помощью forEach так:

obj.Details.forEach(function(detail) { 
    delete detail.address; 
}); 

Или использовать старую for цикл вроде этого:

for(var i = 0; i < obj.Details.length; i++) { 
    delete obj.Details[i].adress; 
} 
Смежные вопросы