如何从数组中删除非值

时间:2017-11-29 17:48:58

标签: javascript arrays

如何清理数组并仅保留数组的数值。这是我的尝试。

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);

2 个答案:

答案 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));