当前位置: 代码迷 >> JavaScript >> 如何只排序数组中的数字值?
  详细解决方案

如何只排序数组中的数字值?

热度:72   发布时间:2023-06-13 12:20:42.0

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

对此有何帮助? 可以使用旧式javascript代码发布您的帮助,因为我在Adobe DC项目上工作?

我的代码在那里:

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

但这只能最小化到最大值并过滤其他字符......我需要保留其他字符并且只保留短数字...

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

如果只是简单地重新分配值,则可以通过避免splice()来更有效地执行此操作。

过滤,排序,重新分配以对数字进行排序:

 let arr = ['c', 2, 'a', 't', 5, 4, 3, 'b', 1] let n = arr.filter(c => typeof c == "number").sort((a, b) => ab) for (let i = 0, c=0; i<arr.length; i++){ if (typeof arr[i] == "number") arr[i] = n[c++] } console.log(arr) 

filter()数字超出数组。 然后sort()它们然后循环通过实数组。 并检查值是否为Number更改它将是排序数组的第一个元素。 并删除sortedArr第一个元素

 let arr = [5, 't', 's', 2,3,4]; let sortedNums = arr.filter(x => typeof x === 'number').sort((a,b) => ab); arr.forEach((a,i) => { if(typeof a === 'number'){ arr[i] = sortedNums[0] sortedNums.shift(); } }) console.log(arr) 

以下内容应给出您输入的确切输出:

 var result = [2, 'a', 't', 5, 4, 3].reduce( function(result,item){ return !isNaN(item)&&item!=='' ? typeof (result[result.length-1] && result[result.length-1].push) === 'function' ? (result[result.length-1].push(item),result) : result.concat([[item]]) : result.concat(item) }, [] ).map( function(item){ return typeof item.sort === 'function' ? item.sort(function(a,b){return ab}) : item } ).reduce( function(result,item){ return result.concat(item) },[] ); console.log(result); 

  相关解决方案