如何清理数组并仅保留数组的数值。这是我的尝试。
var array = ['5441ec', '37df21', '34d72', 'f3117'];
function normalize(input, scale, offset) {
input = input.map(Number); //remove non-numeric characters.
var cleanUp = input.filter(val => $.isNumeric(val) );
return cleanUp.map( values => values * scale + offset );
console.log(cleanUp);
};
normalize(array, 1, 0);
答案 0 :(得分:3)
只需使用String.replace()
功能:
var arr = ['5441ec', '37df21', '34d72', 'f3117'],
res = arr.map((v) => Number(v.replace(/\D+/g, '')));
console.log(res);
\D+
- 一个或多个非数字字符答案 1 :(得分:0)
使用match
而不是replace
与RomanPerekhrest的答案略有不同。
var array = ['5441ec', '37df21', '34d72', 'f3117'];
function normalize(arr) {
return arr.map(el => Number(el.match(/\d+/)));
};
console.log(normalize(array));
或者,如果您想将元素保留为字符串,只需省略数字强制。
var array = ['5441ec', '37df21', '34d72', 'f3117'];
function normalize(arr) {
return arr.map(el => el.match(/\d+/)[0]);
};
console.log(normalize(array));