要按照数组顺序对对象的键进行排序,并保留现有的值来匹配顺序,可以使用以下代码示例来解决问题:
function sortObjectKeys(obj, order) {
const sortedObj = {};
order.forEach(key => {
if (obj.hasOwnProperty(key)) {
sortedObj[key] = obj[key];
delete obj[key];
}
});
// 将剩余的键按照原始对象的顺序添加到结果对象中
for (let key in obj) {
sortedObj[key] = obj[key];
}
return sortedObj;
}
// 示例用法
const obj = {
b: 2,
a: 1,
c: 3
};
const order = ['a', 'b', 'c'];
const sortedObj = sortObjectKeys(obj, order);
console.log(sortedObj);
// 输出: { a: 1, b: 2, c: 3 }
在上面的代码中,sortObjectKeys
函数接受一个对象obj
和一个包含键的顺序数组order
。它首先创建一个空对象sortedObj
来存储排序后的键值对。
然后,它遍历order
数组中的每个键。如果该键存在于原始对象obj
中,它会将该键值对添加到sortedObj
中,并从原始对象中删除该键值对。
接下来,它遍历原始对象剩余的键,并将它们按照原始对象的顺序添加到sortedObj
中。
最后,函数返回排序后的对象sortedObj
。
在示例中,原始对象obj
包含键值对{ b: 2, a: 1, c: 3 }
,而顺序数组order
为['a', 'b', 'c']
。调用sortObjectKeys
函数后,将返回排序后的对象{ a: 1, b: 2, c: 3 }
。
上一篇:按照数组的第一个值对数据进行分组
下一篇:按照数组的顺序获取数据