gpt4 book ai didi

javascript - 从对象中删除额外的属性

转载 作者:行者123 更新时间:2023-11-28 11:48:10 24 4
gpt4 key购买 nike

从默认对象中 undefined object 中删除任何其他属性的最佳方法是什么?

var 

defaults = {

color : 'blue',
size: 9,
price : 40.00,
instock : true

},

newItem = {

color: 'red',
size : 4,
price : 20.00
extra : invalid // discard this
extra1 : invalid // discard this

},

item = $.extend( defaults, newObject ) ;

所需输出...

{
color : 'red',
size: 4,
price : 20.00,
instock : true

}

最佳答案

您可以将 Object.keys(defaults) 简化为包含覆盖值或默认值的对象:

var defaults = {

color : 'blue',
size: 9,
price : 40.00,
instock : true

},
newItem = {

color: 'red',
size : 4,
price : 20.00,
extra : 'invalid',
extra1 : 'invalid'

};

function getOverrides(defaults, obj) {
return Object.keys(defaults).reduce(function(result, cur) {
result[cur] = cur in obj ? obj[cur] : defaults[cur];
return result;
}, {});
}

console.log(getOverrides(defaults, newItem));

关于javascript - 从对象中删除额外的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43418670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com