【问题标题】:Convert string into array of int [closed]将字符串转换为 int 数组 [关闭]
【发布时间】:2014-02-20 08:57:29
【问题描述】:

我想将"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);

我只是在寻找在函数中执行此操作并避免可能出现的错误的最佳方法。 为了我的好奇心,请保持内存效率。

【问题讨论】:

  • 这个问题似乎离题了,因为它最适合codereview.stackexchange.com
  • 1) 首先检查空字符串,2) 停止使用for..in 遍历数组。
  • @raina77ow 我同意 1) 但我想详细说明 2)。不要误会我的意思,我不是说你错了只是想知道为什么。
  • @Satpal 我可以把问题移到那里吗,我需要在那个堆栈上单独注册吗?很抱歉有小问题,我是 Stack 社区的新手。

标签: javascript arrays string parseint


【解决方案1】:

更小的代码是:

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

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

【讨论】:

  • 正如raina77ow 所说,我可以在开始时检查空字符串并使用其余的逻辑。第一次看到这个 map() 东西。我会在使用前用谷歌搜索一下,但看起来是合法的。
  • @MihajloSupic 在第二次阅读你的代码后,我意识到你提到了你想要为空字符串返回什么,所以我在我的实现中添加了它。
  • 对于所有像今天早上一样不熟悉地图的人,请享受:link 谢谢@Tibos。
  • 我也在这个项目中使用了 jquery,但我没有提到它,所以我修剪了函数中的所有内容,以确保它保持字符串。然后如果字符串为空返回[]。否则我会使用你的地图拆分强大的代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-25
  • 1970-01-01
  • 2019-07-16
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多