2013-04-05 1 views
0

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

var data1 = [{ 
name1: "one", 
id: 1, 
IsSelected: false 
    }, 
{ 
name1: "two", 
id: 2, 
IsSelected: false 
}, 
{ 
name1: "three", 
id: 3, 
IsSelected: false 
}]; 

var data2 = [{ 
name2: "five" 
}, 
{ 
name2: "two" 
}, 
{ 
name2: "three" 
}]; 

Из 2 массивов вы можете увидеть 2 строки соответствия «два» и «три». Соответствующие строки привязаны к флажку и отмечены как отмеченные.

Теперь, что я хочу, если строки соответствуют друг другу, тогда для свойства IsSelected следует установить true, если строки соответствуют.

Я знаю, что сплющенный массив сделает структуру такой же из 2 массивов. Но я хочу сравнить 2 массива и пометить свойство IsSelected значением true, если данные совпадают.

Это fiddle, чтобы уменьшить ваше замешательство, если оно есть.

У меня действительно не хватало идей для достижения этого. В скрипке вы можете видеть, что отмечены 2 поля, но рядом с ним отображается ложное. Это должно показаться истинным.

+0

@RPNiemeyer вы можете мне помочь в этом, пожалуйста? – DevelopmentIsMyPassion

ответ

1

Может быть this будет полезно

self.isDuplicated = function (item) { 
    var data2 = viewModel.dataTwo(); 
    for (var index = 0; index < data2.length; index++) { 
     if (data2[index].name == item.name) return true; 
    } 
    return false; 
}; 
+0

вы измените мою скрипку? – DevelopmentIsMyPassion

+0

Нет, я создаю новый, основанный на твоем. – Damien

+0

@Damein Мне нужно свойство IsSelected. Вы удалились в своей скрипке. Обновите мою скрипку, сохраняя свойство IsSelected. Большое спасибо – DevelopmentIsMyPassion

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