2016-03-06 2 views
1

У меня есть модель представления нокаута, который содержит массив объектов строк и массив VisibleColumns объектов, как показано на следующем экране захвата:Удаление элементов с сопрягая ключа из массива

enter image description here

Как вы можете видеть , массив VisibleCoumns содержит значения, которые соответствуют ключам массива Rows.

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

Эти массивы будут довольно большими, поэтому мне интересно, есть ли типичный javascript способ делать такие вещи, которые достаточно эффективны?

+0

ли вы использовать underscorejs? –

+0

'брейд нет. Я совершенно новичок в мире JS - только начинаю использовать KnockoutJs –

+0

вы пробовали использовать фильтры 'ko.utils' для фильтрации массива в соответствии с вашими потребностями –

ответ

1

Что-то вроде этого:

for (var i = 0; i < Rows.length; i++) { 
    var row = Rows[i]; 

    var keys = Object.keys(row); 
    for (var k = 0; k < keys.length; k++) { 
     if (VisibleColumns.indexOf(keys[k]) === (-1)) { 
      delete row[keys[k]]; 
     } 
    } 
} 
+0

Perfect! Спасибо. –

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