如何仅将数字添加到数组中,然后对所有其他字符进行排序?

时间:2019-02-13 16:36:05

标签: javascript

因此,我将4个值放入数组中,然后对它们进行排序...如何避免出现值,为什么不是一个数字来添加数组呢? e.g space,!和其他字符?然后按排序将值放在不同的字段上。

var points = [t1, t2, t3, t4];
[t1, t2, t3, t4] = points;
points.sort(function(a, b){return a - b});

if (isNaN(t1)==false){this.getField("Text1").value = "§"+points[0]}
if (isNaN(t2)==false){this.getField("Text2").value = "§"+points[1]}
if (isNaN(t3)==false){this.getField("Text3").value = "§"+points[2]}
if (isNaN(t4)==false){this.getField("Text4").value = "§"+points[3]}

2 个答案:

答案 0 :(得分:0)

您可以在检查isNaN的同时解析int并映射值。

然后过滤掉未定义的内容。 然后像平常一样对它们进行排序

var arr = [01, 23, 55, ' 5', 't'];

var a = arr.map((v, i, ar) => {
    if (!isNaN(parseInt(v))) {
        return parseInt(v)
    }
})

var a = a.filter((el) => {
    return el !== undefined
})

console.log(a.sort((a, b) => a > b))

结果= [1,5,23,55]

答案 1 :(得分:0)

只需将array filter应用于您的数组即可过滤其内容:

points = points.filter(number => !isNaN(number))
.sort(function(a, b){return a - b})