Объединить значения свойств каждого объекта массива javascript, свойства представляют собой список строк в javascript

у меня есть массив объектов, которые нужно преобразовать в новый массив с новым свойством, используя другой список строк, чтобы прочитать свойство в javascript.

переменная выход =

[
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'}
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'}
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'}
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
]

var mypropertylist = ['Имя','FTA','FTN'];

я хочу новый массив, как показано ниже

вар новый массив =

 [ 
  {value: '000000CayeAAC', concatName: 'KCP13 - LOS - M'}
  {value: '000000CayLAAS', concatName: 'KCN15 - DC - M'}
  {value: '000000CaxXAAS', concatName: 'KCA21 - AUS - M'}
 ]

я пробовал так

output.map(item=>{
                    
                    this.newArray  = [...this.newArray,
                                            {value:item.Id, 
                                             concatName:item.Name + ' - '+item.FTA+ ' - '+item.FTN}];

я получил желаемый результат, но я хочу получить его динамически, используя mypropertylist

Заранее спасибо!

Почему KCZ43 исчезает?

Mister Jojo 10.04.2022 01:40

извините, я добавил только 3. 4-й должен быть таким же, как и другие

sdandamud1 10.04.2022 02:45
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Сравнение структур данных: Массивы и объекты в Javascript
Сравнение структур данных: Массивы и объекты в Javascript
Итак, вы изучили основы JavaScript и хотите перейти к изучению структур данных. Мотивация для изучения/понимания Структур данных может быть разной,...
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Создание собственной системы электронной коммерции на базе Keystone.js - настройка среды и базовые модели
Прошлая статья была первой из цикла статей о создании системы электронной коммерции с использованием Keystone.js, и она была посвящена главным образом...
Приложение для отслеживания бюджета на React js для начинающих
Приложение для отслеживания бюджета на React js для начинающих
Обучение на практике - это проверенная тема для достижения успеха в любой области. Если вы знаете контекст фразы "Практика делает человека...
Стоит ли использовать React в 2022 году?
Стоит ли использовать React в 2022 году?
В 2022 году мы все слышим о трендах фронтенда (React, Vue), но мы не знаем, почему мы должны использовать эти фреймворки, когда их использовать, а...
3
2
39
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

var output = [
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'},
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'},
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'},
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
];

var newArray = output.map(item => {
    return {Id: item.Id, concatName: [item.Name, item.FTA, item.FTN].join(" - ")};
});

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 10.04.2022 02:33

Насколько я понимаю, список свойств — это список ключей, значения которых должны быть объединены в concatName. Давайте сначала сделаем это только это манипулирование свойствами...

// return a string containing the values of props in object, concatenated 
function concatValues(object, props) {
  const values = props.map(prop => object[prop]);
  return values.join(' - ');
}

Далее нам нужна вещь, которая трансформирует объект, изменяя реквизит Id и используя concatValues...

// return an object with it's Id renamed and it's props concatenated
function transform(object, props) {
  return { value: object.Id, concatName: concatValues(object, props) }
}

Затем просто сопоставьте это с вводом. Демо...

// return a string containing the values of props in object, concatenated 
function concatValues(object, props) {
  const values = props.map(prop => object[prop]);
  return values.join(' - ');
}

// return an object with it's Id renamed and it's props concatenated
function transform(object, props) {
  return { value: object.Id, concatName: concatValues(object, props) }
}

const arrayA = [
 {Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M'},
 {Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC', FTN: 'M'},
 {Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M'},
 {Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA', FTN: 'M'}
];

const mypropertylist = ['Name','FTA','FTN'];
const arrayB = arrayA.map(el => transform(el, mypropertylist))
console.log(arrayB);
Ответ принят как подходящий

тот ?

const output = 
  [ { Id: '000000CayeAAC', Name: 'KCP13', FTA: 'LOS', FTN: 'M' } 
  , { Id: '000000CayLAAS', Name: 'KCN15', FTA: 'DC',  FTN: 'M' } 
  , { Id: '000000CaxXAAS', Name: 'KCA21', FTA: 'AUS', FTN: 'M' } 
  , { Id: '000000CaxCAAS', Name: 'KCZ43', FTA: 'CA',  FTN: 'M' } 
  ] 

const concatFunction = (arr, ...items) =>
  arr.map(({Id,...elms}) =>
    ({ value: Id
     , concatName: items.map( item => elms[item] ).join(' - ') 
    })
  )

console.log( concatFunction( output, 'Name', 'FTA', 'FTN' ))
.as-console-wrapper { max-height: 100% !important; top: 0; }
.as-console-row::after { display: none !important; }

Ваш ответ выиграет от объяснения того, что делает ваш код.

Nick Parsons 10.04.2022 03:58

Другие вопросы по теме