根据您的评论,您可以执行以下操作(没有.map
或 shim for .map
):
var str = '0,1,8';
var arr = str.split(','), L=arr.length;
while(L--){arr[L]=Number(arr[L]);}
//now arr contains numbers.
这Number(arr[L]);
是“有效负载”,但您也可以使用(取决于您需要什么):
parseInt(arr[L]);
或者parseFloat(arr[L]);
甚至arr[L]*1;
只是+arr[L];
作为有效负载。它只是让你的船漂浮的东西。
测试:alert(typeof arr[1]); // number
但要真正回答您最初提出的问题(将数组中的值转换为由字符串指定的不同类型),我提供了这个简单的示例来说明如何做到这一点:
var convertArrToAnyByString = function(arr,converTo,rad){
var L = arr.length;
rad = rad||10; // optional, defaults to 10 as radix
switch(converTo){
case 'number':
while(L--){arr[L] = Number(arr[L]);}
break;
case 'string':
while(L--){arr[L] = arr[L].toString(rad);}
break;
default:
arr=false;
}
return arr;
};
var str = '0,1,8';
var arr = str.split(',');
// testing:
alert(typeof arr[1]); //arr[1] should be string by default
arr=convertArrToAnyByString(arr,'number');
alert(typeof arr[1]); // number
arr=convertArrToAnyByString(arr,'string');
alert(typeof arr[1]); // string again
alert(arr[2]); // still 8
您可以通过添加类型甚至错误检查来轻松扩展此示例。
祝你好运!