简体   繁体   English

使用默认解构值javascript进行对象解构

[英]object deconstruction with default deconstructed value javascript

I'm looking for a concise and efficient way to achieve the following: 我正在寻找一种简洁有效的方法来实现以下目标:

Whether property exists in data or not, override it if exists in overriders 无论属性是否存在于data ,如果存在于overriders ,则覆盖它

fn(data = {}, overriders = {}) {

  data = {property: 2};

  let { property = data.property } = overriders;
  console.log(property); // = 2
}

It works and it's quite alright 它很有效,而且很好

Is there a better way? 有没有更好的办法? I was hoping for something like this: 我希望这样的事情:

fn(data = {}, overriders = {}) {

  data = {property: 2};
  overriders = {property: 9}

  let { property } = data || overriders;
  console.log(property); // = 9
}

(I know it resembles fallback but I was looking for something close to it syntaxwise) (我知道它类似于fallback但我正在寻找一些接近它的语法)

You can use object destructuring. 您可以使用对象解构。

function changeData( data = {}, overrides = {} ) {
  return { ...overrides, ...data }; 
}

console.log( changeData( { property: 2 }, { property: 9, a: 1, b: 2 }) ) ;

Additional Info 附加信息

 function fn(data = {property: 2}, overriders = {property: 9}) { let { property } = {...data, ...overriders}; console.log(property); // = 9 } fn(); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM