如何将数组值转换为全局变量?
var p = new Array();
var all_Y_values = 0;
for (var r = 0; r < embeddedCells.length; r++)
{
p[r] = embeddedCells[r].attributes.position.y;
all_Y_values = p[r], all_Y_values;
console.log("all y values: " + all_Y_values); //prints all values
}
console.log("all y values: " + all_Y_values); //prints only last value
现在在循环中我能够在循环内打印所有值但是当我打印相同的外循环时,它只打印最后一个值。
答案 0 :(得分:3)
您的值集合已在“p”内:
var p = new Array();
var all_Y_values = 0;
for (var r = 0; r < embeddedCells.length; r++) {
p[r] = embeddedCells[r].attributes.position.y;
console.log("current y value: " + p[r]); //prints current value
}
console.log("all y values: " + p.join(','));
P.S。 :p和all_Y_values不是全局变量,而是局部变量。仅在javascript中,函数创建新的上下文。循环不是。
答案 1 :(得分:2)
这应该在结尾打印所有y值(ps:使用forEach的新版本)
var p = new Array();
embeddedCells.forEach (function (e, i) {
p[i] = e.attributes.position.y;
console.log("current y value: " + p[i]); //prints current value
});
console.log("all y values: " + p.join(", "));
希望它有效