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

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

本文关键字:数组 何使用 计算 访问 数字 不能 Javascript 为什么      更新时间:2023-09-26
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];时,我得到了一个未定义的。为什么这行不通?还有其他方法可以得到这个吗?我搜索了所有。

数组number包含类型为 string 的元素。即使 JavaScript 不是类型强的,变量和元素仍然包含某种特定类型的数据。

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

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

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

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

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