Javascript 将字符串转换为int数组

Javascript 将字符串转换为int数组,javascript,arrays,string,parseint,Javascript,Arrays,String,Parseint,我想将“1,2,3”转换为[1,2,3]。 但将“转换为数组时会出现异常。因为我得到了[“”]。这对我的情况无效。所以我需要检查是数字还是字符串。让我们在代码中看到这一点 function someWayToParse(some_string) { var final_product = []; var tmp_array = some_string.split(','); //if some_string == "" tmp_array will result ["

我想将
“1,2,3”
转换为
[1,2,3]
。 但将
转换为数组时会出现异常。因为我得到了
[“”]
。这对我的情况无效。所以我需要检查是数字还是字符串。让我们在代码中看到这一点

function someWayToParse(some_string) {
    var final_product = [];

    var tmp_array = some_string.split(',');

    //if some_string == "" tmp_array will result [""];
    if (tmp_array[0].length===0)
        return [];

    for (var item in tmp_array)
        final_product.push(parseInt(tmp_array[item], 10));

    return final_product;
}

var stringToParse = "1,2,3";

var array_of_ints = someWayToParse(stringToParse);
我只是在寻找在函数中实现这一点的最佳方法,以避免可能的错误。
为了我的好奇心,请节省内存。

较小的代码是:

function myConverter(string) {
  if (!string) return [];
  return string.split(',').map(Number);
}

console.log(myConverter('1,2,3'));

较小的代码是:

function myConverter(string) {
  if (!string) return [];
  return string.split(',').map(Number);
}

console.log(myConverter('1,2,3'));

这个问题似乎离题了,因为它最适合1)首先检查空字符串,2)停止使用
for..in
@raina77ow对数组进行迭代,我同意1)但我想对2)进行一些详细说明。不要误解我,我不是说你们错了,只是想知道为什么。@Satpal我可以把问题移到那个里吗?我需要在那个堆栈上单独注册吗。很抱歉提出一些小问题,我是Stack社区的新手。这个问题似乎离题了,因为它最适合1)首先检查空字符串,2)停止使用
for..in
@raina77ow对数组进行迭代。我同意1)但我想对2)进行一些详细说明。不要误解我,我不是说你们错了,只是想知道为什么。@Satpal我可以把问题移到那个里吗?我需要在那个堆栈上单独注册吗。很抱歉提出一些小问题,我是Stack社区的新手。正如raina77ow所说,我可以在start中检查空字符串,并使用其他逻辑。第一次看到这个map()东西。我会在使用前用谷歌搜索一下,但看起来很合法。@MihajloSupic在第二次阅读您的代码后,我意识到您提到了要为空字符串返回的内容,所以我在我的实现中添加了它。对于所有像今天早上一样不熟悉map的人,享受:谢谢@Tibos。我在这个项目中也使用jquery,但我没有提到它,所以我修剪了函数中的所有内容,以确保它保持字符串状态。如果字符串为空,则返回[]。否则,我将使用您的map split强大代码。正如raina77ow所说,我可以在start中检查空字符串,并使用其余的逻辑。第一次看到这个map()东西。我会在使用前用谷歌搜索一下,但看起来很合法。@MihajloSupic在第二次阅读您的代码后,我意识到您提到了要为空字符串返回的内容,所以我在我的实现中添加了它。对于所有像今天早上一样不熟悉map的人,享受:谢谢@Tibos。我在这个项目中也使用jquery,但我没有提到它,所以我修剪了函数中的所有内容,以确保它保持字符串状态。如果字符串为空,则返回[]。否则我用你的地图分割强大的代码。