2013-12-16 4 views
0

У меня есть объект с назначенными свойствами (ключами) к этому объекту, теперь я использую метод Object.getOwnPropertyNames(), чтобы получить массив со всеми свойствами, назначенными этому объекту.Удалить свойства на основе имени

Проблема заключается в том, что я хочу найти все свойства, содержащие строку «item», а затем устранить ее, не присваивая ей нулевое значение, возможно ли это без использования Regex? что-то вроде jQuery .contains()?

+1

Петля через ключи сравнивает ключевое имя, чтобы проверить «элемент», если «удалить» его. – PSL

ответ

2
Object.getOwnPropertyNames(obj).forEach(function(name) { 
    if(name.indexOf('item') >= 0) { 
     delete obj[name]; 
    } 
}); 

Это чувствительный к регистру.

Использовать name.toLowerCase() для нечувствительных к регистру.

+0

Почему downvote? –

+0

это клон предыдущего ответа, но спасибо в любом случае! – ProllyGeek

+0

@ProllyGeek, по-другому вокруг. Я отвечаю за минуту до другого ответа. –

1

Довольно основной

Попробовать следующий фрагмент кода, чтобы получить нужное значение из массива и удалить

Object.getOwnPropertyNames(obj).forEach(function(name) { 
    if(name.indexOf('item') >= 0) { 
     delete obj[name]; 
    } 
}); 

Надеется, что это может быть полезным.

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