在JavaScript中,可以通过几种方法按照对象的值重新排序对象,但保留键和值。以下是其中一种方法的代码示例:
// 定义要排序的对象
var obj = {a: 5, b: 2, c: 8, d: 1};
// 将对象的键和值存储在数组中
var arr = Object.entries(obj);
// 根据值对数组进行排序
arr.sort(function(a, b) {
return a[1] - b[1];
});
// 创建一个新的对象,并将排序后的键值对添加到其中
var sortedObj = {};
arr.forEach(function(item) {
sortedObj[item[0]] = item[1];
});
// 打印排序后的对象
console.log(sortedObj);
在上面的代码中,我们首先使用Object.entries()
方法将对象转换为一个键值对数组。然后,使用sort()
方法对该数组进行排序,排序规则是根据键值对的值进行排序。最后,我们创建一个新的对象sortedObj
,并通过遍历排序后的数组将键值对添加到对象中,从而得到按值重新排序的对象sortedObj
。
输出结果应为:{ d: 1, b: 2, a: 5, c: 8 }
,表示对象已按值重新排序,但保留了键和值不变。