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

Другими словами, на вход нам дается js-объект.

input = {"a": "1", "b": "1", "c": "2"} // данный входной объект

output = {"1": ["a", "b"], "2": ["c"]} // требуется желаемый вывод.

Даже если вы хорошо знакомы с javascript, это кажется простой проблемой, но обычно ее задают на собеседованиях, и есть вероятность, что вы не решите проблему. Итак, чтобы решить эту простую, но сложную проблему, нам нужно сначала узнать о некоторых вещах в javascript. Итак, давайте начнем

  1. Object.values(input) — принимает объект и возвращает нам массив значений заданных ключей объекта. Здесь input — случайный объект.

Просто возьмите это. Если у нас есть объект как {спорт: «крикет», человек: «Вират Кохли»}, тогда Object.value (вход) возвращает [«крикет», «Вират Кохли»]

Для получения дополнительной информации об Object.values(‹object›) вы можете обратиться к документации MDN здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Object/values

2. Object.keys(input) — принимает объект и возвращает нам массив заданных ключей объекта.

Просто возьмите это. Если у нас есть объект как {спорт: «крикет», человек: «Вират Кохли»}, тогда Object.value (ввод) возвращает [«спорт», «человек»]

Для получения дополнительной информации об Object.keys(‹object›) вы можете обратиться к документации MDN здесь https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_objects/Object/values

3. Базовый Javascript — основные функции JavaScript, такие как функции, циклы. Если вы это понимаете или чувствуете, что вам нужен новый мир или новый сложный уровень видеоигры, я рекомендую сначала пройтись по основам.

Вы можете найти здесь

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

Подход к проблеме

Сначала решите проблему, не отчаивайтесь и попробуйте хотя бы 20 минут. Если вы найдете лучшее решение, тогда слава вашим навыкам javascript, иначе вы можете использовать этот подход, прежде чем сначала смотреть на это решение.

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

вывод = {"1": ["а", "б"], "2": ["с"]}.

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

Вот псевдокод для него.

Обратный (вход):

Найдите ключи объекта с помощью и сохраните в массиве с помощью Object.keys(input) и назначьте first.

Точно так же найдите значения в заданном объекте, используя Object.values ​​(ввод) и назначьте за секунду.

Возьмите объект map при назначении пустых массивов его свойству

4. Петля во второй. здесь val - итератор:

4.а. Если в объекте уже присутствует second[val] -> поместите first[val] в second.[val] с помощью push.

4.б. В противном случае назначьте first[val] для карты.

5. Распечатайте карту.

Вот окончательное решение для того же самого.

пусть ввод = {«а»: «1», «б»: «1», «с»: «2»}

пусть вывод = {"1": ["а", "б"], "2": ["с"]}

let first = Object.keys(input) // ["a", "b", "c"]

пусть карта = {};

let second = Object.values(input) // [1,1,2];

console.log («второй», второй);

функция преобразования (первая, вторая) {

for(let val in second){

карта [секунда [значение]] = []

}

for(let val in second){

если (карта [секунда [значение]]) {

карта [второй [значение]].push (первый [значение]);

}

еще{

карта [вторая [значение]] = первая [значение];

}

}

карта возврата;

}

console.log(преобразовать(первое, второе));

Надеюсь, вам понравился мой пост и вы почерпнули из него полезную информацию.

использованная литература