Javascript为什么我不能使用这样的数组,如何使用计算出的数字访问数组

时间:2016-03-23 09:36:57

标签: javascript arrays

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];时,我得到一个未定义的。为什么这不起作用? 有没有其他方法可以得到这个?我一直在搜索。

3 个答案:

答案 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