gpt4 book ai didi

javascript - 下划线,查找和更改对象中的值

转载 作者:行者123 更新时间:2023-11-30 17:00:54 28 4
gpt4 key购买 nike

我正在尝试在对象的函数中查找和替换值

我的对象看起来像这样:

 var testStates = [{
"module": "module1",
"customUrl": [
{ "mod1": "2" },
{ "mod2": "1" }
]
}, {
"module": "module2",
"customUrl": [
{ "mod3": "false" },
{ "mod4": "5" }
]
}
];

我的函数是这样的:

 myFunction = function(mod, name, replace){
//replace item in testStates

基本上我想做的是使用这些变量在里面搜索,其中 mod 是一个“模块”值,name 是一个“mod”的键(如示例中的 mod1 或 mod2),替换是要在所选模组上替换的值。

如果我说

 myfunction(module1, mod1, 5);

然后我希望对象看起来像

    var testStates = [{
"module": "module1",
"customUrl": [
{ "mod1": "5" }, ////Changed
{ "mod2": "1" }
]
}, {
"module": "module2",
"customUrl": [
{ "mod3": "false" },
{ "mod4": "5" }
]
}
];

有点像对对象的查找和替换。我不确定如何用下划线解决这个问题,希望得到一些帮助!感谢阅读!

最佳答案

首先,您需要传入要处理的对象,因此您的函数签名为:

function myfunction (obj, mod, name, replace) {
// Code
}

这个想法很简单:
您遍历数组中的对象,如果模块名称与您想要的相同,则检查 customUrl 的键以找到指定的键并将其替换为您的新值.

这里是完整的函数:

function myfunction (obj, mod, name, replace) {
_.each(obj, function(item) {
if (item.module === mod) {
_.each(item.customUrl, function(innerItem) {
if (_.has(innerItem, name)) {
innerItem[name] = replace;
}
});
}
});
}

here is a jsbin也有一个简单的测试。单击右上角的在 JS Bin 中编辑,您应该会在控制台 选项卡中看到结果。

关于javascript - 下划线,查找和更改对象中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886832/

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