问题描述
我的任务是编写一个将字符串更改为整数的函数。如果该值大于零,我必须将其保存在一个新数组中,如果它不进行过滤,则与数组中的数字相同。 tab1 = ['d','e',3,'h',11,-2,'P'] 这是董事会。 一般是根据ASCII的变化,但有细微的变化,因为例如d要写成3,即从每个结果中减去额外的97。谁能帮我这个?我完全不知道该怎么做:( 到目前为止,我已经成功地创造了这么多; /
var tab1=['d','P'];
let tab2=[];
function convertStingToInt(){
for (let i = 0; i < tab1.length; i++)
tab2 = tab1.charCodeAt([i]);
}
console.log(tab2);
解决方法
这里有两个可以正常工作的版本——我更喜欢最后一个(为了可读性)。
附言你的代码有很多错误要计算,所以除非你想让我做,否则我不会去检查它们。
var tab1=['d','e',3,'h',11,-2,'P'];
function convertStingToInt(arr){
let tab2=[];
for (let i = 0; i < arr.length; i++) {
if (typeof arr[i] !== 'number') {
var val = arr[i].charCodeAt(0);
} else {
var val = arr[i];
}
if (val > 0) tab2.push(val);
}
return tab2;
}
console.log(convertStingToInt(tab1)); // [100,101,104,80]
var tab1=['d','P'];
var tab2 = tab1.map(function(x) {
if (typeof x !== 'number') {
return x.charCodeAt(0);
} else {
return x;
}
}).filter(function(x) {
if (x > 0) return true;
});
console.log(tab2); // [100,80]