根据另一个数组对一个数组进行排序

时间:2021-05-29 05:55:56

标签: javascript arrays

我想根据 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};

谁能让我知道实现这一目标的干净方法?

1 个答案:

答案 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)