如何在此 lodash 循环中动态命名我的对象参数?
How to dynamically name my object params in this lodash loop?
var params = {};
_.forEach(n.tags, function(n, index) {
console.log(index);
index++
// For each tag, create new param.term1, term2, term3 etc...
params.term[index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');
});
_.forEach
将遍历 n.tags
(最多包含 3 个标签)。
我将 index++
迭代 1,所以我从 1 而不是 0 开始,以创建 "term1"。
现在下一部分是我尝试动态生成最多 3 个新的 params.term[i] 值。
params.term[index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');
我想要得到的是以下内容:
params.term1 = 111;
params.term2 = 222;
params.term3 = 333;
我目前遇到的错误是 TypeError: Cannot set 属性 '1' of undefined 当我尝试在此处动态设置参数名称时:params.term[index]
您将如何使用 _lodash
完成此操作?
您将 params.term
称为现有数组,这就是您收到错误的原因。试试这个...
params["term" + index] = ....
这将为每个索引创建一个 属性。您可以使用
访问它
params["term1"]
或...
params.term1
您正在尝试设置 params.term[1]
、params.term[2]
、and params.term[3]
。如果 params.term
是一个数组,这会起作用,但实际上 params.term
似乎不存在。
您说过要设置 params.term1
、params.term2
和 params.term3
,因此您应该执行以下操作以编程方式访问字段 term1
、term2
和 term3
.
params["term" + index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');
var params = {};
_.forEach(n.tags, function(n, index) {
console.log(index);
index++
// For each tag, create new param.term1, term2, term3 etc...
params.term[index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');
});
_.forEach
将遍历 n.tags
(最多包含 3 个标签)。
我将 index++
迭代 1,所以我从 1 而不是 0 开始,以创建 "term1"。
现在下一部分是我尝试动态生成最多 3 个新的 params.term[i] 值。
params.term[index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');
我想要得到的是以下内容:
params.term1 = 111;
params.term2 = 222;
params.term3 = 333;
我目前遇到的错误是 TypeError: Cannot set 属性 '1' of undefined 当我尝试在此处动态设置参数名称时:params.term[index]
您将如何使用 _lodash
完成此操作?
您将 params.term
称为现有数组,这就是您收到错误的原因。试试这个...
params["term" + index] = ....
这将为每个索引创建一个 属性。您可以使用
访问它params["term1"]
或...
params.term1
您正在尝试设置 params.term[1]
、params.term[2]
、and params.term[3]
。如果 params.term
是一个数组,这会起作用,但实际上 params.term
似乎不存在。
您说过要设置 params.term1
、params.term2
和 params.term3
,因此您应该执行以下操作以编程方式访问字段 term1
、term2
和 term3
.
params["term" + index] = _.result(_.find(n.tags, function(term_id) {
return term_id;
}), 'term_id');