[英]Matching an array mixed with text and numbers
我正在按顺序对混合有数字和字符串的数组进行排序,我想返回该数组,而忽略其中的单个文本字符串。 这是我的代码。
function mySort(my_sort) {
return my_sort.sort(
function(a, b){
return a-b
});
}
您可以首先使用filter()
和typeof
删除所有类型不是数字的变量。 我认为您不需要sort()
。
let my_sort = [90, 45, 66, 'bye', 100.5] ; const res = my_sort.filter(x => typeof x === "number") console.log(res)
注意 :在问题中,您直接在将修改原始数组的参数上使用sort。 每当您要返回新的排序数组时,请确保将其复制。
您可以with
正则表达式模式/[az]/ig
如果数字是字符串格式,这意味着在它的另外一个数字内用引号'90'
它仅删除contain alphabets
更新:具有奇数排序
var remove = (my_sort) => my_sort.filter(a => !(/[az]/ig.test(a))).sort((a,b)=> (parseFloat(b)%2)-(parseFloat(a)%2)) console.log(remove(['90', 45, 66, 'bye', 100.5])) //number with quotes console.log(remove(['90t', 45, 66, 'bye', 100.5])) //number contain string console.log(remove(['6', 5, 6, '1', 100.5])) //odd sort
如果要删除字符串,则可以进行filter
并使用isNaN
来检查元素是否为数字。
function mySort(my_sort) { return my_sort.filter(n => !isNaN(parseFloat(n)) && isFinite(n)) .sort((a, b) => a - b); } let result = mySort([90, 45, 66, 'bye', 100.5]); console.log(result);
如果您不想对数字进行排序,则可以filter
。
function mySort(my_sort) { return my_sort.filter(n => !isNaN(parseFloat(n)) && isFinite(n)) } let result = mySort([90, 45, 66, 'bye', 100.5]); console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.