我想转换字符串给出的类型,因为我想将一串数字转换为数字数组。
var myStringType = "number[]";
var myString = "0, 0, 0";
var myStringArray = myString.Split(","); <- these array need to be a array;
var myNumbersArray = ConvertToAnyByString(myStringArray, myStringType);
如果上述方法不可行,我可以通过知道类型进行转换。有没有类似比较typeof(数字[])
的更新: 我认为这是一个误解。我不知道哪种类型会传递给我的函数。我需要进行类型检查或通过字符串信息转换它的类型。并且没有办法在javascript中本地执行此操作,因为没有类型的arrayOfStrings只有一个数组。但我可以手工制作辅助功能。
答案 0 :(得分:2)
行。试试这个 -
var str = '0,0,0';
var arr = str.split(','); // ['0', '0', '0']
var int_arr = arr.map(function(el) {return parseInt(el, 10);}); // [0, 0, 0]
希望有所帮助!
答案 1 :(得分:0)
根据您的评论,您可以执行此操作(.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]);
是&#39;有效负载&#39;但你也可以使用(取决于你需要的):
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
您可以通过添加类型甚至错误检查轻松扩展此示例。
祝你好运!