如何仅对数组中的数字值进行排序?

hac*_*tom 5 javascript arrays sorting

var 点 = [2, a, t, 5, 4, 3]; 排序后: var points = [2, a, t, 3, 4, 5];

有什么帮助吗?因为我在 Adob​​e DC 项目中工作,所以可以使用旧式 javascript 代码发布您的帮助吗?

我的代码在那里:

var points = [t1, t2, t3, t4];
[t1, t2, t3, t4] = points;

var lucky = points.filter(function(number) {
  return isNaN(number) == false && number !=="" && number!== undefined;
});
points=lucky
points.sort(function(a, b){return a - b});

this.getField("Text6").value = points
Run Code Online (Sandbox Code Playgroud)

但这只会将最小值排序为最大值并过滤其他字符......我需要保留其他字符并且只保留数字......

Arm*_*mel 3

var points = [2, "a", "t", 5, 4, 11, "", 3];
var insert = points.slice(0); // Clone points

// Remove all elements not a number
points = points.filter(function(element) {
  return typeof element === 'number';
});

// Sort the array with only numbers
points.sort(function(a, b) {
  return a - b;
});

// Re-insert all non-number elements
insert.forEach(function(element, index) {
  if (typeof element !== 'number') {
    points.splice(index, 0, element);
  }
});

console.log(points);
Run Code Online (Sandbox Code Playgroud)

  • 好的。事实上,考虑到有多少回答者(包括我自己)犯了这个错误,这看起来是一个很好的面试问题,可以在将来使用 (2认同)
  • 为什么只使用“sort()”,它不适用于更大的数字。 (2认同)