JavaScript拆分,更改部件号

JavaScript拆分,更改部件号,javascript,string,Javascript,String,我有一个动态生成的大字符串,我正在拆分它 var myString="val1, val, val3, val4..... val400" 我在这个字符串上做了一个简单的拆分 myString= myString.split(',') 获取以下信息: myString[1] // gives val1 myString[2] // gives val2 myString[3] // gives val3 . . . myString[400] // gives val400 有没有办法做到

我有一个动态生成的大字符串,我正在拆分它

var myString="val1, val, val3, val4..... val400"
我在这个字符串上做了一个简单的拆分

myString= myString.split(',')
获取以下信息:

myString[1] // gives val1
myString[2] // gives val2
myString[3] // gives val3
.
.
.
myString[400] // gives val400
有没有办法做到以下几点

myString[101] // gives val1
myString[102] // gives val2
myString[103] // gives val3
.
.
.
myString[500] // gives val400

数组是基于零的,所以实际上在您的版本中,索引是0到399,而不是1到400

我不太清楚为什么要在数组的开头填充100个项目,但是为了它的价值,这里有一个简单的方法来实现你想要的。这也是
数组
构造函数实际有用的少数几次之一:

var parts = new Array(100).concat(myString.split(','));

我们可以使用
unshift()
方法在数组的开头添加元素。下面是使用它的一般语法

scripts.unshift("VAL01","VAL02");
这里
scripts
是我们的数组对象,我们使用
unshift()
方法将两个新元素VAL01和VAL02添加到此数组的开头


因此,您可以使用
unshift
在拆分字符串之前添加100个数组元素。

如果不希望在开头(索引0到99)添加100个填充元素,则不希望使用数组。数组总是与索引连续。因此,您可能正在寻找一个对象

var obj = {}
for ( var i = 0; i < arr.length; i++ )
{
    obj[ i + 100 ] = arr[i];
}
var obj={}
对于(变量i=0;i

但是,您不应该这样做,因为使用对象会减少您使用对象的可能性。如果您不想在开始处再添加100个元素(在这种情况下,您可以将这些元素添加到现有数组的开始处),那么您应该使用原始数组,并在访问它时手动移动索引。

您确定需要吗?只需从偏移量中减去100即可得到该值。为此,JavaScript中的数组是零索引的。这意味着可以使用
myString[0]
访问第一项,而不是使用
myString[1]

使用函数读取偏移值

function getOffSetValue(arr, index, offset)
{
    if(offset == undefined)
         offset = 100;
    return arr[index - offset];
}

var st = "val1,val2,val3,val4,val5";
var a = st.split(',');

console.log(getOffSetValue(a, 102));

请注意,数组以索引
0
开头。