我想根据 array1
中值的顺序对 array2
进行排序。
一个例子会更好地解释。
const array1 = [7, 2, 6, 3, 4, 1]; const array2 = [1, 2, 9]
我希望有
const array3 = [1, 2, 7, 6, 3, 4]
。
==========
此外,假设我们有 const object1 = {key5: value5, key3: value3, key4: value4, key1: value1, key2: value2}; const array2 = ["key1", "key2", "key3"]
。
如何获取以下对象 object3 = {key1: value1, key2: value2, key3: value3, key5: value5, key4: value4};
谁能让我知道实现这一目标的干净方法?
答案 0 :(得分:1)
为什么你需要一个带有排序键的对象?似乎不太有用,无法理解用例。但这里有一个可能的解决方案。
const object1 = {key5: 5, key3: 3, key4: 4, key1: 1, key2: 2};
const array2 = ["key1", "key2", "key3"]
const array1 = Object.keys(object1)
const resultObj = array2
.filter(x => array1.includes(x))
.concat(array1.filter(x => !array2.includes(x)))
.reduce((acc, key) => {
acc[key] = object1[key];
return acc;
}, {});
console.log(resultObj)