Как инвертировать значение ключа в объекте JavaScript?

Опубликовано: 1 Декабря, 2021

JavaScript - это высокоуровневый интерпретируемый и динамически типизированный язык сценариев на стороне клиента. JavaScript используется для добавления динамических функций в статический HTML. В JavaScript все является объектом. Объекты в JavaScript могут быть объявлены с помощью фигурных скобок {..}, и объекты могут содержать определенные свойства. Эти свойства в основном представляют собой пары "ключ-значение". Ключ - это идентификатор, который используется для хранения и извлечения значений. Преобразование пар ключ-значение обычными методами утомительно. Но с появлением «underscore.js» инверсию значений ключей можно выполнять с помощью встроенного метода _.invert () . В этой статье мы обсудим оба метода инвертирования пар ключ-значение объектов JavaScript.

Первый подход: в этом примере мы продемонстрируем традиционный метод инвертирования пар ключ-значение. Сначала создается студенческий объект со свойствами «имя», «возраст», «стандарт» и «сборы». Определена функция inverse (), которая принимает объект ученика в качестве параметра и перебирает каждый ключ объекта. Определен новый объект retobj, в котором хранятся инвертированные пары значений ключа.

Реализация кода:

Javascript

function inverse(obj){
var retobj = {};
for ( var key in obj){
retobj[obj[key]] = key;
}
return retobj;
}
var student =
{
name : "Jack" ,
age: 18,
std : 12,
fees : 5000
}
console.log( "Object before inversion" );
console.log(student);
student = inverse(student);
console.log( "Object after inversion" );
console.log(student);

Выход:

Второй подход: в этом примере мы используем метод _.invert () из «underscore.js» для инвертирования пар ключ-значение объекта. Метод принимает объект в качестве параметра и возвращает копию объекта с ключами в качестве значений и значениями в качестве ключей. Объект «ученик» передается методу _.invert () . Метод возвращает перевернутую копию объекта «студент». Программа импортирует внешнюю библиотеку «underscore.js» для использования встроенных методов. Результаты отображаются на веб-странице.

Синтаксис:

 _.invert (объект)

Реализация кода:

HTML

<!DOCTYPE html>
< html >
< head >
< script
src =
</ script >
</ head >
< body >
< script type = "text/javascript" >
var student = {
name : "Jack",
age: 18,
std : 12,
fees : 5000
}
document.write("< h1 >Object before inversion</ h1 >");
document.write("< br >");
document.write(JSON.stringify(student));
document.write("< br >");
student = JSON.stringify(_.invert(student));
document.write("< h1 >Object after inversion</ h1 >");
document.write("< br >");
document.write(student);
</ script >
</ body >
</ html >

Выход: