繁体   English   中英

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

[英]Javascript why can't i use an array like this and how can i access the array with a calculated number

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);
    }

当我记录firstNode时,我没有得到undefined但是当我计算到“下一个节点”的数字并尝试获取var secondNode = nodesXY[number+1]; 我得到一个未定义的。 为什么这不起作用? 有没有其他方法可以得到这个? 我到处都搜索过。

在数字数组中使用数字,而不是字符串

var number  = [0,1,2,3,4,0,0,0];

您的数字数组包含字符串而非实际数字"1" + 1将产生"11"而不是2 ,这不是数组中的键。 使用number = [0,1,...]或使用parseInt(number) + 1

您的数组number包含string类型的元素。 尽管JavaScript不是类型强大的,但变量和元素仍然包含某些特定类型的数据。

当您访问number[X] ,它将返回一个字符串。 为了使其工作,你必须创建一个数字数组: var number = [1,2,3,...]或使用parseInt(number[X])将数组返回的字符串解析为数字parseInt(number[X])

有关JavaScript var可以容纳的不同类型的列表,请参阅MDN JavaScript文档中的此页面

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM