Изначально есть два XML их конвертирую в JSON т.к. в моём варианте у JS (ECMAScript)нет DOM и нет возможности парсить XML. Но есть поддержка JSON и JSON.parse
Есть два списка JSON.
1й JSON{"JOB": {"Inks": {"ink": [
{
"Angle": 7,
"Frequency": 150,
"InkParam": "новая",
"ID": 1,
"ColorName": "PANTONE 877 C"
},
{
"Angle": 67,
"Frequency": 150,
"InkParam": "новая",
"ID": 2,
"ColorName": "PANTONE Bright Red C"
},
{
"Angle": 82,
"Frequency": 175,
"InkParam": "новая",
"ID": 3,
"ColorName": "Yellow"
},
{
"Angle": 37,
"Frequency": 175,
"InkParam": "новый",
"ID": 4,
"ColorName": "Black"
},
{
"Angle": 37,
"Frequency": 150,
"InkParam": "новый",
"ID": 5,
"ColorName": "PANTONE 427 C"
},
{
"Angle": 37,
"Frequency": 150,
"InkParam": "новый",
"ID": 6,
"ColorName": "Cyan"
},
{
"Angle": 7,
"Frequency": 150,
"InkParam": "новая",
"ID": 7,
"ColorName": "Magenta"
},
{
"Angle": 37,
"Frequency": 175,
"InkParam": "новая",
"ID": 8,
"ColorName": "PANTONE 581 C"
},
{
"Angle": 50,
"Frequency": 133,
"InkParam": 180202,
"ID": 9,
"ColorName": "PANTONE 7739 C"
},
{
"Angle": 50,
"Frequency": 150,
"InkParam": 180201,
"ID": 10,
"ColorName": "PANTONE Blue 072 C"
}
]}}}
2й JSON{"JOB": {"Inks": {"Ink": [
{
"ID": 1,
"ColorName": "Cyan"
},
{
"ID": 2,
"ColorName": "Magenta"
},
{
"ID": 3,
"ColorName": "Yellow"
},
{
"ID": 4,
"ColorName": "Black"
},
{
"ID": 5,
"ColorName": "PANTONE 427 C"
},
{
"ID": 6,
"ColorName": "PANTONE 877 C"
},
{
"ID": 7,
"ColorName": "PANTONE Bright Red C"
},
{
"ID": 8,
"ColorName": "PANTONE 7739 C"
},
{
"ID": 9,
"ColorName": "PANTONE 581 C"
},
{
"ID": 10,
"ColorName": "PANTONE Blue 072 C"
}
]}}}
Нужно из первого списка вставить во второй InkParam. Но оба списка по разному отсортированы/имеют разный порядок. Совпадают только ColorName.
На выходе требуется получить:
{"JOB": {"Inks": {"Ink": [
{
"ID": 1,
"InkParam": "новый",
"ColorName": "Cyan"
},
{
"ID": 2,
"InkParam": "новая",
"ColorName": "Magenta"
},
{
"ID": 3,
"InkParam": "новая",
"ColorName": "Yellow"
},
{
"ID": 4,
"InkParam": "новый",
"ColorName": "Black"
},
{
"ID": 5,
"InkParam": "новый",
"ColorName": "PANTONE 427 C"
},
{
"ID": 6,
"InkParam": "новая",
"ColorName": "PANTONE 877 C"
},
{
"ID": 7,
"InkParam": "новая",
"ColorName": "PANTONE Bright Red C"
},
{
"ID": 8,
"InkParam": 180202,
"ColorName": "PANTONE 7739 C"
},
{
"ID": 9,
"InkParam": "новая",
"ColorName": "PANTONE 581 C"
},
{
"ID": 10,
"InkParam": 180201,
"ColorName": "PANTONE Blue 072 C"
}
]}}}