javascript - 返回带有 ascii 值和前一个数组的数字的新数组

标签 javascript arrays

我正在编写一个函数,没有使用任何 JS 内置函数。该函数接受一个数组 ['z','C',2,115,30],然后创建一个新数组,其中包含第一个数组中字符的 ascii 值加上之前存在的普通数字,因此: [127, 67, 2 ,115,30]。我遇到的问题是我无法正确地将第一个数组中的数字放入第二个数组中。

到目前为止我可以得到新数组[127,67,2,1,1,5,3,0]。因此,chars ascii 值被正确输入到新数组中,但是在迭代数字时,当我只想输入整个数字而不是每个数字时,它会将数字的每个数字然后将逗号放入数组中。

function func(x){
    var str = '';
    var arr = [];
    for(var i=0; i<x.length;i++){
        str += x[i]
    }
    for(var j=0; j<str.length;j++){
        if(isNaN(str[j])){
            arr += str.charCodeAt(j) + ', ';
        }
        else if(!isNaN(str[j])){
            arr += str[j] + ', ';
        }
    } print(arr)

}

func(['z','C',2,115,30])

我期望输出为 [122, 67, 2, 115, 30],当前输出为 [122, 67, 2, 1, 1, 5, 3, 0,]

最佳答案

不要组合成一个字符串 - 相反,使用简单的 for 循环:

 

function func(x) {
  var arr = [];
  for (let i = 0; i < x.length; i++) {
if (typeof x[i] == "string") arr[arr.length] = (x[i].charCodeAt(0);
else arr[arr.length] = x[i];
  }
  console.log(arr);
}

func(['z','C',2,115,30]);

使用数组方法要简单得多:

 

function func(x) {
  var arr = x.map(e => typeof e == "string" ? e.charCodeAt(0) : e);
  console.log(arr);
}

func(['z','C',2,115,30]);

关于javascript - 返回带有 ascii 值和前一个数组的数字的新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57261946/

相关文章:

javascript - 如何在数组中的字符串中开始一个新行?

arrays - 拼接数组引用

javascript - 使用自定义样式从过滤器中去除 HTML 标签

Javascript 下载 URL - Azure Blob 存储

javascript - 比较对象数组并分配相似度分数

c++ - 使用二维数组作为参数

javascript - 如何使用 localecompare 对包含负值的数字数组进行排序?

javascript - 更改具有相同类的多个元素的样式

javascript - 基于 json 对象显示数据不起作用

jquery - 如何检查数组是否是多维的? (jQuery)