объединение массива с объектом и возврат массива со всеми свойствами с массивом значения объекта или нуля
let object = {
keys: {
test1: {label: "Test_1"},
test2: {label: "Test_2"},
test3: {label: "Test_3"}
}
}
let data = [{test1: "1", test2: "2", default:"123134" }, {test1: "1", test2: "2", default:"123134"}, {test1: "1", test3: "3"}, {test3: "3"}]
Я ожидаю следующий массив объектов
let expectedArray = [{Test_1: "1", Test_2: "2", Test_3: null ,default:"123134" }, {Test_1: "1", Test_2: "2", Test_3: null, default:"123134"}, {Test_1: "1", Test_3: "3", Test_2:null }, {Test_3: "3", Test_1: null, Test_2: null}]
Пробовал ниже фрагмент
let res = data.map(o => {
let obj = {}
let c = Object.keys(o).forEach(aa => {
obj[object.keys[aa].label] = o[aa]
})
return obj
})
Любая помощь приветствуется
я не понял
Он имеет в виду, что вы пробовали до сих пор и где вы нанесли удар?
{Test 1: "1", Test 2: "2", Test 3: null ,default:"123134" }
Недопустимый объект
обновил ключ
обновлен с фрагментом попробовал
Вы можете заменить существующий ключ объекта и перестроить новые объекты.
var object = { keys: { test1: { label: "Test 1" }, test2: { label: "Test 2" }, test3: { label: "Test 3" } } },
data = [{ test1: "1", test2: "2", default: "123134" }, { test1: "1", test2: "2", default: "123134" }, { test1: "1", test3: "3" }, { test3: "3" }],
templates = Object.values(object.keys).map(({ label }) => ({ [label]: null })),
result = data.map(o => Object.assign(
{},
...templates,
...Object
.entries(o)
.map(([k, v]) => ({ [k in object.keys ? object.keys[k].label : k]: v }))
));
console.info(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
мне нужно получить все ключи, ожидаемый массив каждого объекта состоит из каждого ключа. Можете ли вы проверить ожидаемые данные в вопросе
я пытаюсь обновить структуру другим способом, не могли бы вы помочь мне с этим stackoverflow.com/questions/56339879/…
что не работает?