首页 > 解决方案 > 根据另一个数组对一个数组进行排序

问题描述

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

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

标签: javascriptarrays

解决方案


为什么需要一个带有排序键的对象?似乎不是那么有用,并且无法理解用例。但这是一个可能的解决方案。

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)


推荐阅读