У меня есть кусок данных JSON, который я использую для динамического создания формы, и это выглядит так:Слияние двух частей несоответствующих данных с immutable.js?
{
"form": {
"fields": [
{
"name": "First Name",
"alt": "first_name"
},
{
"name": "Last Name",
"alt": "last_name"
},
{
"name": "D.O.B.",
"alt": "dob"
},
{
"name": "Primary Address",
"alt": "primary_address"
},
{
"name": "Primary City",
"alt": "primary_city"
},
{
"name": "ZIP Code",
"alt": "zip"
},
{
"name": "Country",
"alt": "country"
},
{
"name": "First 4 Phone Digits",
"alt": "first_phone"
},
{
"name": "Phone Number",
"alt": "phone_number"
}
]
},
"someVal": [],
"someVal2": "a string"
}
Когда я представить эту форму, и есть ошибки, я возвращаемые ошибки в следующем формате:
[
{
"alt": "primary_city",
"errors": [ "primary_city Error Message" ]
},
{
"alt": "zip",
"errors": [ "zip Error Message" ]
},
{
"alt": "first_name",
"errors": [ "first_name Error Message" ]
},
{
"alt": "dob",
"errors": [ "dob Error Message" ]
},
{
"alt": "primary_address",
"errors": [ "primary_address Error Message" ]
},
{
"alt": "last_name",
"errors": [ "last_name Error Message" ]
}
]
Моя цель состоит в том, чтобы объединить два, чтобы получить этот формат, чтобы объединить ошибки, где альтов матч:
{
"form": {
"fields": [
{
"name": "First Name",
"alt": "first_name",
"errors": [ "first_name Error Message" ]
},
{
"name": "Last Name",
"alt": "last_name",
"errors": [ "last_name Error Message" ]
},
{
"name": "D.O.B.",
"alt": "dob",
"errors": [ "dob Error Message" ]
},
{
"name": "Primary Address",
"alt": "primary_address",
"errors": [ "primary_address Error Message" ]
},
{
"name": "Primary City",
"alt": "primary_city",
"errors": [ "primary_city Error Message" ]
},
{
"name": "ZIP Code",
"alt": "zip",
"errors": [ "zip Error Message" ]
},
{
"name": "Country",
"alt": "country"
},
{
"name": "First 4 Phone Digits",
"alt": "first_phone"
},
{
"name": "Phone Number",
"alt": "phone_number"
}
]
},
"someVal": [],
"someVal2": "a string"
}
до сих пор я пытался г о следующем:
import { fromJS, Map, List } from 'immutable';
import form from './json/form.json'
import config from './json/errors.json'
let list = new List([])
list.merge(fromJS(config), fromJS(form));
console.log(list);
console.log(list.toJS())
// console.log(JSON.stringify(newList, null, 2))
И я только получаю следующий вывод:
List []
[]
Я честно не знаю, как начать слияние этих и документация не очень помогает либо.
Ну, вы пытаетесь объединить объект (первый набор кода) с массивом (второй набор кода). Похоже, вы действительно хотите объединить значение свойства 'form.fields' в первом наборе кода с массивом из второго ... –
Вам также нужно указать код, который вы хотите сопоставить на' alt' свойство. Я предлагаю прочитать ответы на [этот вопрос] (http://stackoverflow.com/q/39908169/215552) для получения дополнительной информации об этом. –
@MikeMcCaughan Я попробовал 'list.merge (fromJS (ошибки), fromJS (form.form.fields));' но я все равно получаю пустой массив. Просто посмотрел ваш второй комментарий, проверяя его. – eveo