JavaScript拆分,更改零件编号
问题描述:
我有一个动态生成的大字符串,我正在分解。JavaScript拆分,更改零件编号
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个项目填充在数组的开头,但为了它的价值,这里有一个做你想做的简短方法。这也是为数不多的几次Array
构造函数实际上是有效的方法之一:
var parts = new Array(100).concat(myString.split(','));
答
我们可以通过使用unshift()
方法在数组开头添加元素。这是使用它的一般语法。
scripts.unshift("VAL01","VAL02");
这里scripts
是我们的数组对象,我们通过使用unshift()
方法增加了两个新的元素,VAL01和VAL02,在这个数组的开头。
因此,您可以使用unshift
在分割字符串之前添加100个数组元素。
答
如果您不想在开始时使用100个填充元素(索引0至99),则不需要使用数组。数组总是与索引保持一致。所以你可能正在寻找一个对象。
var obj = {}
for (var i = 0; i < arr.length; i++)
{
obj[ i + 100 ] = arr[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'开始。 – poke 2010-10-18 09:14:04