-1

简单的javascript问题:

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

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

我只是无法使用 .split 解决它

谢谢

4

1 回答 1

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到一个只有数字元素的新数组上。

这是一个工作示例

附录

如果你不是从一个实际的 JavaScript 数组开始,而是一个你想转换成数组的字符串,那么在前面的步骤之前添加这个步骤以获得原始数组:

var str = '(50=50; 49=49; 143=143; 4005=4005;)';
var arr = str.replace(/\(|\)|;/g, '').split(' ');
于 2012-05-09T12:39:00.810 回答