JavaScript – 基于值排序键值对对象?
通过使用 JavaScript 的原生数组方法和函数,我们可以轻松创建适用于任何类型对象的自定义排序算法。在本文中,我们将讨论如何使用这些技术来根据值对对象的键值对进行排序。
JavaScript 中的键值对,例如映射、字典,存储一个与另一个值(“值”)关联的值(“键”)。它可以用于快速存储和访问数据,因为每个元素都有其唯一的标识符。
为了基于值对键值对对象进行排序,我们使用 JavaScript 中的`sort()`方法。
在 JavaScript 中使用 sort()
JavaScript 中的 `sort()` 方法用于就地对数组的元素进行排序,并返回已排序的数组。默认排序顺序为升序。
语法
以下是 `sort()` 的语法
array.sort(compareFunction)
示例
在下面的示例中,我们首先将内容存储为对象的数组,然后执行常规的 `sort()` 方法后执行 `sort()` 方法。
<!DOCTYPE html>
<html>
<body>
<script>
var obj = {
"1": "Apple",
"2": "Yatch",
"3": "Ducati",
"4": "Benz",
};
var arr = [];
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
arr.push(obj[key]);
}
}
document.write(arr.sort());
</script>
</body>
</html>
当脚本执行时,它将生成一个输出,其中包含根据执行脚本时触发的事件按升序打印的对象数组。
示例
考虑到这个例子,我们使用 `Object.keys(obj)` 来访问数组中的对象键,然后根据其中每个 `item.value` 的长度对该对象数组进行排序。
<!DOCTYPE html>
<html>
<body>
<p id="tutorial"></p>
<script>
const obj = {
"1": [11, 234, 343],
"2": [3],
"3": [123, 245],
"4": [1111, 2222, 3333, 4444]
};
const array = Object.keys(obj).reduce((array, key) => {
array.push({ key: key, value: obj[key] });
return array;
}, [])
const sortedArray = array.sort((x, y) => x.value.length - y.value.length);
document.getElementById("tutorial").innerHTML=JSON.stringify(sortedArray);
</script>
</body>
</html>
运行上述脚本后,网页浏览器将显示根据长度按升序排序的网页上的数组,这是由执行时触发的事件引起的。
示例
考虑以下示例,我们正在执行脚本以根据值对键值对对象进行排序。
<!DOCTYPE html>
<html>
<body>
<script>
var myObj = {
'U': 'avatar',
'J': 'bheem',
'M': 'tilak'
},
keys = [],
k, i, len;
for (k in myObj) {
if (myObj.hasOwnProperty(k)) {
keys.push(k);
}
}
keys.sort();
len = keys.length;
for (i = 0; i < len; i++) {
k = keys[i];
document.write(k + ':' + myObj[k]+"<br>");
}
</script>
</body>
</html>
当脚本执行时,事件被触发,使数组对象在网页浏览器上根据其键值对按升序排序。
示例
执行以下代码以根据其值对键值对对象进行排序。
<!DOCTYPE html>
<html>
<body>
<p id="tutorial"></p>
<script>
var details = [
{ studentId: 100, name: "John" },
{ studentId: 110, name: "Adam" },
{ studentId: 120, name: "Carol" },
{ studentId: 130, name: "Bob" },
{ studentId: 140, name: "David" }
];
details = details.sort(function (obj1, obj2) {
return obj1.name.localeCompare(obj2.name);
});
document.getElementById("tutorial").innerHTML=JSON.stringify(details);
</script>
</body>
</html>
运行上述脚本后,事件被触发,并在网页上根据字母顺序按升序对给定的数组对象进行排序。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP