Blu*_*ill 0 javascript arrays for-loop
所以我有一个名为"options"的对象,其中包含以下内容:
var options = {
assignments: ['involved', 'assignee', 'candidate'],
assignment: ""
}
Run Code Online (Sandbox Code Playgroud)
使用for循环,我试图将我的数组赋值中的值逐个放入赋值var中.然后我使用"选项"将新值作为我在循环中调用的另一个函数的参数.
for (var i = 0; i < options.data.assignments.length; i++) {
options.data.assignment = options.data.assignments[i];
console.log("value of i : ",i);
console.log("value of options :",options);
otherFunction(options);
}
Run Code Online (Sandbox Code Playgroud)
我期待看到这样的结果:
i的值:0
期权价值:{assignment ="涉及"......}
i的值:1
期权价值:{assignment ="受让人"......}
i的值:2
期权价值:{assignment ="candidate"...}
但相反,我有这样的事情:
i的值:0
期权价值:{assignment ="candidate"...}
i的值:1
期权价值:{assignment ="candidate"...}
i的值:2
期权价值:{assignment ="candidate"...}
事情是这样做,我的赋值变量总是设置为"候选",我的数组末尾的值.
奇怪的是,当我尝试时console.log(options.data.assignments[i]),正确的值出现了.对于"i"来说,它从0到1再到2然后正确停止.所以我的循环工作得非常好,除非我想设置变量的值.
有什么想法这里的问题是什么?
谢谢
for (var i = 0; i < options.data.assignments.length; i++) {
options.data.assignment = options.data.assignments[i];
}
Run Code Online (Sandbox Code Playgroud)
将循环3次:
options.data.assignment = options.data.assignments[0] - > options.data.assignment='involved'options.data.assignment = options.data.assignments[1] - > options.data.assignment='assignee'options.data.assignment = options.data.assignments[2] - > options.data.assignment='candidate'所以实际上,您将3个不同的数据逐个分配给相同的值,因此,最后options.data.assignment将是循环的最后一个值.
以下是一个更简单的例子:
var a = 0;
for (var i = 0; i < 3; i++) {
a = i;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,最后变量a将始终是循环的最后一个值i.
首先它应该是options.assignments而不是options.data.assignments.这是你想要的东西
var options = {
assignments: ['involved', 'assignee', 'candidate'],
assignment: ""
}
for (var i = 0; i < options.assignments.length; i++) {
options.assignment = options.assignments[i];
console.log("value of i : ",i);
console.log("value of options :", options);
// otherFunction(options);
}Run Code Online (Sandbox Code Playgroud)
如你所见,我的任务正在改变
| 归档时间: |
|
| 查看次数: |
1044 次 |
| 最近记录: |