javascript - 使用第一个数组中的值填充对象中的第二个数组

标签 javascript arrays object ecmascript-6

我也有这样的情况

const links = {
  ALLOWED1: [ 'some_path1' ],
  ALLOWED2: [ 'some_path2' ]
}

但是我还想允许 ALLOWED2 上先前数组的路径,我已经尝试过

const links = {
  ALLOWED1: [ 'some_path1' ],
  ALLOWED2: [ ...links['ALLOWED1'], 'some_path2' ]
}

但这无效,因为链接尚未定义。当然我可以手动填充它,但宁愿找到更优雅的解决方案。

最佳答案

你可以用三行来代替

const links = {};
links.ALLOWED1 = [ 'some_path1' ];
links.ALLOWED2 = [ ...links['ALLOWED1'], 'some_path2' ];

console.log(links.ALLOWED2);

记住,const 只保持对对象的引用不变,而不是对象的内容。为此,您需要 Object.defineProperty

如果 allowed1 和 allowed2 的内容发生变化,我可能会考虑使用一个函数来获取它们。例如:links.all = () => [...links.ALLOWED1, ...links.ALLOWED2]。对我来说,这在代码中读起来会更清楚,除非非常清楚 allowed2 始终是 allowed1 的超集。

关于javascript - 使用第一个数组中的值填充对象中的第二个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40977546/

相关文章:

javascript - 映射对象内的映射对象

javascript - 如何处理JSON树?

Java 对象类,构造函数链接

javascript - d3 - 节点中需要帮助

c - 指针周围存在大量内存泄漏

javascript - 拉斐尔 Javascript。更改与另一个对象相关的文本外观

arrays - VB - 附加到数组?

php - 如何从 amazon s3 对象中获取键数组

javascript - 在 Angular 应用程序中监听 socket.io

javascript - Chart.ygrids.remove 和 Chart.ygrids.add 不能一起工作