Прилагаем все усилия, чтобы объяснить, что я пытаюсь сделать.
У меня две модели, мой и ответ api, который я получаю. Когда приходит ответ api элементов, мне нужно сопоставить его с моей моделью и вставить все элементы. Это, конечно, просто. Вот вопрос, мне нужно сделать это, не зная, с чем я имею дело. Мой код будет передан в две строки, один из путей отображения моделей и один из путей сопоставления ответов api.
Вот два пути
var myPath = "outputModel.items[].uniqueName"
var apiPath = "items[].name"
В основном для всех items
в apiPath
, нажмите items
в myPath
и установите uniqueName
Что происходит, так это то, что мой код не имеет идеи, когда нужно отображать два элемента или даже содержать массив или простое поле для путей к полям. Они могут содержать даже несколько массивов:
******************** ПРИМЕР *************************
var items = [
{
name: "Hammer",
skus:[
{num:"12345qwert"}
]
},
{
name: "Bike",
skus:[
{num:"asdfghhj"},
{num:"zxcvbn"}
]
},
{
name: "Fork",
skus:[
{num:"0987dfgh"}
]
}
]
var outputModel = {
storeName: "",
items: [
{
name: "",
sku:""
}
]
};
outputModel.items[].name = items[].name;
outputModel.items[].sku = items[].skus[].num;
************************ Вот ожидаемый результат выше
var result = {
storeName: "",
items: [
{
name: "Hammer",
sku:"12345qwert"
},
{
name: "Bike",
sku:"asdfghhj"
},
{
name: "Bike",
sku:"zxcvbn"
},
{
name: "Fork",
sku:"0987dfgh" }
]
};
Мне будет предоставлен набор путей для отображения КАЖДОГО значения. В приведенном выше случае мне передали два набора путей, потому что я сопоставляю два значения. Для создания единого массива в моей модели нужно было бы перемещать оба набора массивов.
Вопрос. Как я могу динамически обнаруживать массивы и правильно перемещать данные независимо от того, как выглядят два пути модели? Возможно ли это?