基于您的评论,你可以(为.map
没有.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
您可以轻松地在此展开例如添加类型甚至错误检查。
祝你好运!
不知道你想问什么,但如果你做''0,0,0'.split(',')'实际上会给你一个数组''“0”,“0”, “0”]'。 – Rishabh
@Rishabh我有一个字符串,它需要是一个数组而不是一个字符串数组。 –
您需要澄清2件事: *您是否期望在数组中始终有数字,或者您是否需要过滤错误(空插槽,文本)? * Ints或花车? – tomByrer