Существует довольно сложная задача для решения следующей проблемы.Сопоставление отдельных объектов Javascript, а затем добавление последнего объекта
У меня есть следующий массив и JavaScript объектов:
Вход:
У меня есть три разных цвета (blue,green,yellow)
и три различных размера (sz=9,11,13)
в яваскрипте объектов и пытаюсь отобразить их.
color=["blue","green","yellow"];
myObj=[{x:0,y:1,sz:9},{x:4,y:11,sz:9},{x:11,y:17,sz:11},{x:29,y:18,sz:13}];
Выход:
data1:[{x:0,y:1,sz:9,color:"blue"},{x:4,y:11,sz:9,color:"blue"}];
data2:[{x:4,y:11,sz:9,color:"green"},{x:11,y:17,sz:11,color:"green"}];
data3:[{x:11,y:17,sz:11,color:"yellow"},{x:29,y:18,sz:13,color:"yellow"}];
Вот jsfiddle, отображающих объекты, основанные на их sz
собственности и добавляет color
свойства. Единственное, чего не хватает, это добавить последний объект и изменить цвет.
Например:
data2
«S первый объект приходит от data1
» последнего объекта s, кроме другого цвета, который является зеленый.
Вот что у меня есть:
data2:[{x:11,y:17,sz:11,color:"green"}];
Вот что мне нужно:
data2:[{x:4,y:11,sz:9,color:"green"},{x:11,y:17,sz:11,color:"green"}];
Что вы имеете в виду, «* сортировать их на основе на их предопределенный массив размеров * "? Почему бы просто не отсортировать по свойству '.sz'? И разве этот массив уже не отсортирован? – Bergi
'size' array фактически также может быть использован для сортировки объекта на основе его свойства' s'. – casillas
Я еще не понял, я не вижу сортировки в этой скрипке. Вы хотите 'color [size.indexOf (obj.sz)]'? Или у вас есть проблема с конструированием этого объекта 'индексов' из' size'? – Bergi