Лучший способ как можно найти key обьекта и получить его значения в переборе массива

93
31 октября 2021, 22:20

У меня есть массив

items = ['name', 'description', ...];

и есть массив обьектов

objArr = [
  name: {
    required: true,
    title: 'some name'
  },
  description: {
    required: false,
    text: 'some text'
  }
]

как можно сделать новый массив чтобы он был таким:

itemsInfo = [
  name: {
    name: 'name',
    settings: {
      required: true,
      title: 'some name'
    }
  },
  {
    name: 'description',
    settings: {
      required: false,
      text: 'some text'
    }
  },
]

я сделал вот таким способом но возможно есть получше решение, так как в моём случает я много раз прохожу в поиске значений?

newArr = items.map(item => {
      for (const key in objArr) {
          if (item.name === key) {
             item.field = objArr[key];
          }
      }
      return item;
});
Answer 1

Если я правильно понял вопрос, то за один проход можно сделать. Я не делал, но возможно надо проверять на наличие ключа в objArr

items = ['name', 'description']; 
 
objArr = { 
  name: { 
    required: true, 
    title: 'some name' 
  }, 
  description: { 
    required: false, 
    text: 'some text' 
  } 
} 
 
var newArr = []; 
for (var i of items) { 
   newArr.push({ 
       name: i, 
       setting: objArr[i] 
     }); 
} 
console.log(newArr)

READ ALSO
Поиск в большом тексте

Поиск в большом тексте

Есть у меня большой текст и моя задача в том чтобы при вводе что-то в поле ввода программа начала искать совпадения с текстом и возвращала...

103
Валидаций двух и более обьектов в WPF (Validation WPF)

Валидаций двух и более обьектов в WPF (Validation WPF)

У меня в диалогом окне есть 5 элементов xaml texbox у каждый элемент имеет свою валидацию

123
Почему не работает код в VS

Почему не работает код в VS

Компилирую его стандартным компилятором NET который поставляется с фреймворкрм и все работает,раздел создается,а если компилировать из под...

213
Как разбить одномерный массив вида слово-перевод в двумерный? С#

Как разбить одномерный массив вида слово-перевод в двумерный? С#

Есть файл, в котором лежат строки вида "слово-перевод"Разделителем в данном случае работает "-"

201