javascript - 根据另一个数组对一个数组进行排序
问题描述
我想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};
谁能让我知道实现这一目标的干净方法?
解决方案
为什么需要一个带有排序键的对象?似乎不是那么有用,并且无法理解用例。但这是一个可能的解决方案。
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)
推荐阅读
- xamarin - 为什么我在使用带参数的 GET 时会出现错误
- string - Gforth - 如何获取字符串的代码点?
- c# - 如何解决.net核心中动态控制器的依赖关系?
- r - “x”必须是数字
- c# - 如何使用 IEnumerable 处理空返回数据中的异常
C# - javascript - D3:为什么光标附近的工具提示从不显示?
- c++ - 单链表的分段错误
- python - 无法在 Python 中使用 Selenium 定位/单击弹出按钮
- reactjs - 关于在 reactjs 中调用 API
- ansible - 没有使用 Ansible 模块 lxc_container 的此类文件或目录