gpt4 book ai didi

javascript - 当我的配置文件中有一个普通数组时,我应该如何使用 jQuery extend?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:50:50 24 4
gpt4 key购买 nike

似乎 $.extend 仅使用其输入的键来确定要覆盖的内容。所以当我的配置看起来像这样时

var config = {
"numeric" : false,
"keycode_whitelist" : [
37, 39, // Left, right
9, // Tab
17, // Ctrl
116 // F5
]
};

并扩展了更多的键码以添加到白名单,扩展只是用新的键码一个一个地覆盖默认值,即使它们是不同的值。

我正在考虑通过键入像这样的键来解决这个问题 37: 37, 39: 39 等。我想要一个不会强制我搞乱语法的解决方案不过我的配置。

最佳答案

您可能想使用 merge而不是扩展:

var config = {
"numeric": false,
"keycode_whitelist": [
37, 39, // Left, right
9, // Tab
17, // Ctrl
116 // F5
]
};

var custom = {
"somevalue": "some other things",
"keycode_whitelist": [
1, 2, 3
]
};
var newopts = $.extend({}, config, custom);
newopts.keycode_whitelist = $.merge(custom.keycode_whitelist, config.keycode_whitelist);

演示:http://jsfiddle.net/3Q4cF/2/

更新:

合并每一个数组:

$.each(config, function(key, obj){
if($.isArray(obj)) {
if(custom[key]) {
newopts[key] = $.merge(config[key], custom[key]);
}
}
} );

http://jsfiddle.net/3Q4cF/5/

关于javascript - 当我的配置文件中有一个普通数组时,我应该如何使用 jQuery extend?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7081964/

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