简单的javascript问题:
我有一个数组(50 = 50; 49 = 49; 143 = 143; 4005 = 4005; ......)
我想变成(50; 49; 143; 4005; ......)。
名称将始终与name = value对中的值相同 它将始终是一个数字(但不同长度)。
我无法使用.split
来解决问题由于
答案 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(' ');