更改javascript数组名称,值对

时间:2012-05-09 12:33:46

标签: javascript arrays

简单的javascript问题:

我有一个数组(50 = 50; 49 = 49; 143 = 143; 4005 = 4005; ......)
我想变成(50; 49; 143; 4005; ......)。

名称将始终与name = value对中的值相同 它将始终是一个数字(但不同长度)。

我无法使用.split

来解决问题

由于

1 个答案:

答案 0 :(得分:1)

假设你的意思是你有一个像这样的数组:

var arr = ['50=50;','49=49;','143=143;','4005=4005;'];

然后,您可以像这样使用split

var newArr = [], ii;
for (ii = 0; ii < arr.length; ii += 1) {
    newArr.push(parseInt(arr[ii].split('=')[0], 10));
}

这将导致newArr等于:

var newArr = [50, 49, 143, 4005];

split的工作方式是将字符串分为基于分隔符字符串的数组。在这个例子中,我们使用'='作为分隔符,所以我们最终得到这样的数组:

['50', '50;']
['49', '49;']
// etc.

然后,索引到第一个元素并将其传递给parseInt以生成一个数字,并将push传递给只包含数字元素的新数组。

这里是working example

附录

如果您不是从一个实际的JavaScript数组开始,而是一个您希望变成一个数组的字符串,那么在前一个数组之前添加此步骤以获得原始数组:

var str = '(50=50; 49=49; 143=143; 4005=4005;)';
var arr = str.replace(/\(|\)|;/g, '').split(' ');