JavaScript 如何在对象中反转键值
JavaScript 是一种高级、解释性和动态类型的客户端脚本语言。JavaScript用于为静态HTML添加动态特性。在JavaScript中,一切都是对象。可以使用大括号{…}声明JavaScript中的对象,这些对象可以包含某些属性。这些属性基本上是键值对。键是用于存储和检索值的标识符。使用传统方法反转键值对是很麻烦的。但是通过“underscore.js”的出现,可以使用内置方法 _.invert() 来执行键值反转。在本文中,我们将讨论反转JavaScript对象的键值对的两种方法。
方法1
在这个示例中,我们将演示传统的反转键值对的方法。首先,创建一个包含属性“name”、“age”、“std”和“fees”的学生对象。定义一个 inverse() 函数,它将学生对象作为参数,并遍历对象的每个键。定义一个新对象 retobj 来存储反转的键值对。
示例: 这个示例展示了上述方法。
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);
输出:
Object before inversion
{name: 'Jack', age: 18, std: 12, fees: 5000}
Object after inversion
{12: 'std', 18: 'age', 5000: 'fees', Jack: 'name'}
方法2
在这个示例中,我们使用“underscore.js”库的 _.invert() 方法来颠倒对象的键值对。该方法以对象作为参数,返回一个将键作为值、值作为键的对象的副本。将“student”对象传递给 _.invert() 方法。该方法返回“student”对象的颠倒副本。程序导入外部的“underscore.js”库以使用内置方法。结果显示在网页上。
语法:
_.invert(object)
示例: 此示例显示了上述解释的方法。
<script src=
"https://cdn.jsdelivr.net/npm/underscore@1.12.0/underscore-min.js">
</script>
<script type="text/javascript">
var student = {
name : "Jack",
age: 18,
std : 12,
fees : 5000
}
console.log("Object before inversion");
console.log(JSON.stringify(student));
student = JSON.stringify(_.invert(student));
console.log("Object after inversion");
console.log(student);
</script>
输出:
Object before inversion
{name: 'Jack', age: 18, std: 12, fees: 5000}
Object after inversion
{12: 'std', 18: 'age', 5000: 'fees', Jack: 'name'}
极客教程