可以使用 Array.prototype.map() 方法来实现把字符串数组中的元素变为数字类型。
例如:
let arr = ['20.60%', '-19.01%', '21.53%'];
let newArr = arr.map(item => parseFloat(item.slice(0,-1)));
console.log(newArr);
// [20.60,-19.01,21.53]
,首先使用Array.prototype.map()来遍历每一项,再通过string的slice方法来将最后一个字符删除,再使用parseFloat将字符串变为数字。
注意:
- parseFloat只能解析十进制的小数,不能解析八进制和十六进制
- 如果数组元素都是整数, 可以使用 Number() 或 parseInt() 来转换。
既然都到这里了,那么怎么判断数组里的每个元素都是带有"%"的呢?
解:可以使用 Array.prototype.every() 方法来实现判断
例如:
let arr = ['20.60%', '-19.01%', '21.53%'];
let isAllPercent = arr.every(item => item.endsWith('%'));
console.log(isAllPercent); //true
endsWith() 是一种字符串方法,用于确定字符串是否以特定的字符序列结尾。简单的来说就是判断最后一项是不是你指定的这个字符。
语法是:string.endsWith(substring [, length]);
感兴趣的同学可以搜索一下。。。