var nodesXY = ['15% 15%','30% 16%','19% 42%','39% 80%',];
var number = ["0","1","2","3","4","0","0","0"];
//some loop
AccesNodes(number[1]);
function AccesNodes(number){
console.log(number);
//number = number;
var firstNode = nodesXY[number];
console.log(nodesXY[number]);
console.log(firstNode);
number++;
var secondNode = nodesXY[number];
console.log(nodesXY[number]);
console.log(secondNode);
number = number + 4;
var secondNode = nodesXY[number];
console.log(nodesXY[number]);
console.log(secondNode);
}
当我记录undefined
时,我没有得到firstNode
但是当我将数字计算到“下一个节点”并尝试获取var secondNode = nodesXY[number+1];
时,我得到一个未定义的。为什么这不起作用?
有没有其他方法可以得到这个?我一直在搜索。
答案 0 :(得分:1)
在数字数组中使用数字,而不是字符串
var number = [0,1,2,3,4,0,0,0];
答案 1 :(得分:1)
您的数字数组包含的字符串不是实际数字"1" + 1
会产生"11"
而不是2
,这不是数组中的键。使用number = [0,1,...]
或使用parseInt(number) + 1
。
答案 2 :(得分:1)
您的数组number
包含string
类型的元素。尽管JavaScript不是类型强大的,但变量和元素仍然包含某些特定类型的数据。
当您访问number[X]
时,它将返回一个字符串。为了使其工作,您必须创建一个数字数组:var number = [1,2,3,...]
或使用parseInt(number[X])
将数组返回的字符串解析为数字。
有关JavaScript var
可以容纳的不同类型的列表,请参阅MDN JavaScript文档中的this page。