Как положить значение ключа в переменную?

У меня есть массив soundParts. У меня есть переменная letter. Мне нужно переменную letter разделить на элементы, чтобы было "б", "1", "2"и сравнить все эти элементы с ключами массива после чего записать значения массива в новую переменную если они совпадают т.е. 1 сравнить с number 1, 2,3, 4 и если 1 совпадает с 1, то в result я записываю '../../sound/1.mp3'.

Я не могу понять как мне положить значения массива в переменную. Помогите разобраться, пожалуйста.

const soundParts = {
    number: {
      1: "../../sound/1.mp3",
      2: "../../sound/2.mp3",
      3: "../../3в.mp3",
      4: "../../4.mp3"
    },
letter: {
      а: "../../sound/a.mp3",
      б: "../../sound/b.mp3",
    }
}
    
const letter = "b12";

for (let key in soundParts) {
  const newLetter = letter.split("");
  const result = "";
    if (key === newLetter) {
    result.push(key);
    console.log(result);
  }
}

Ответы (1 шт):

Автор решения: Юрий Копоть
  1. У вас объект с двумя свойствами number and letter. И в цикле for вы проходите именно по этим свойствам, а НЕ ПО нужными значениям (1: "../../sound/1.mp3"). Вам нужно или ДВА цикла (soundParts.number and soundParts.letter), или сначала объединить в один объект number and letter, что бы было так allParts = {1: "../../sound/1.mp3", ..., а: "../../sound/a.mp3"}
  2. По поводу const result = "";. Нужно создать новый массив, а не строку, и сделать это нужно ЗА ПРЕДЕЛАМИ цикла (иначе вы создаёте каждый новую переменную. А так как это const за пределами цикла эта переменная будет не доступна)

const soundParts = {
  number: {
    1: '../../sound/1.mp3',
    2: '../../sound/2.mp3',
    3: '../../3в.mp3',
    4: '../../4.mp3'
  },
  letter: {
    a: '../../sound/a.mp3',
    b: '../../sound/b.mp3',
  }
};
const letter = 'b12';

// объединенние данных, в один объект
const allParts = {...soundParts.number, ...soundParts.letter};

// создания результатирующего массива, ЗА пределами цикла
const result = [];
for (const key in allParts) {
  // проверяете, есть ли ключ в строке
  if (letter.includes(key)) {
    // если да, добавляет в массив СВОЙТВО, а не ключ
    result.push(allParts[key]);
  }
}
console.log(result);

→ Ссылка