Javascript 将对象转换为字符串或typeof(数字[])给定的类型

Javascript 将对象转换为字符串或typeof(数字[])给定的类型,javascript,Javascript,我喜欢转换字符串给定的类型,因为我想将数字字符串转换为数字数组 var myStringType = "number[]"; var myString = "0, 0, 0"; var myStringArray = myString.Split(","); <- these array need to be a array; var myNumbersArray = ConvertToAnyByString(myStringArray, myStringType); var mySt

我喜欢转换字符串给定的类型,因为我想将数字字符串转换为数字数组

var myStringType = "number[]";
var myString = "0, 0, 0";

var myStringArray = myString.Split(","); <- these array need to be a array;
var myNumbersArray = ConvertToAnyByString(myStringArray, myStringType);
var myStringType=“number[]”;
var myString=“0,0,0”;
var myStringArray=myString.Split(“,”) 嗯。试试这个-

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]

希望有帮助

根据您的评论,您可以执行以下操作(无需
.map
.map
的垫片):

此处
编号(arr[L])
是“有效载荷”,但您也可以使用(取决于您的需要):
parseInt(arr[L])
parseFloat(arr[L])
arr[L]*1
甚至是简单的
+arr[L]
作为有效载荷。这正是让你的船漂浮的东西

使用:
警报(arr[1]类型)进行测试;//编号


但是,为了真正回答您最初提出的问题(将数组中的值转换为字符串指定的不同类型),我提供了一个简单的示例来说明如何做到这一点:

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'。拆分(',)
,这实际上会给你一个数组
[“0”,“0”,“0”]
@Rishabh我有一个字符串,它必须是一个数字数组而不是字符串数组。你需要澄清两件事:*你希望数组中总是有数字吗,或者您是否需要过滤掉错误(空插槽、文本)?*整数还是浮点?确定OP只需要整数,而不是浮点吗?请注意,阵列上的原型映射是新的ES5,因此根本不兼容浏览器。此外,所需的垫片相当大。@GitaarLAB我们不能都停留在过去:)此外,垫片可以做得相当小。@Jack:谢谢你的善意推动。我上个月刚从小写字母l转换成大写字母l,但错过了最后一个字母l。更新答案。是的,测试过了。
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