Javascript - 排序数组时忽略引号
Javascript - Ignore Quotes when sorting array
我还没有找到好的解决办法。我在词汇表弹出窗口中使用了一组字符串。字符串是键,用于从对象中检索定义。我需要按字母顺序对数组进行排序,但一些字符串包含引号,排序后最终出现在第一位。
keys = ['Back Pay', '"Hot Cargo" Agreements', 'Clayton Act',
'Fiduciaries', 'Estoppel', ...]
排序后,我希望列表忽略引号并成为以下内容:
['Back Pay', 'Clayton Act', 'Estoppel',
'Fiduciaries', '"Hot Cargo" Agreements', ...]
但我得到以下信息:
['"Hot Cargo" Agreements', 'Back Pay', 'Clayton Act', 'Estoppel',
'Fiduciaries', ...]
有没有办法在排序过程中忽略引号而不删除它们?它们是术语的一部分,在词汇表弹出窗口中显示时需要出现。
您可以使用
创建自定义排序函数
myArray.sort(mysortfunction);
然后在你的函数中去掉引号
function mysortfunction(a,b) {
a = a.replace(/"/g,'');
b = b.replace(/"/g,'');
return (a < b ? -1 : 1);
}
这是一个jsfiddle。
您可以编写忽略引号的自定义排序函数:
var keys = ['Back Pay', '"Hot Cargo" Agreements', 'Clayton Act', 'Fiduciaries', 'Estoppel'];
function removeQuotes(str) {
return str.replace(/['"]+/g, '')
}
var sorted = keys.sort(function(a, b) {
return removeQuotes(a) > removeQuotes(b);
});
console.log(sorted);
我还没有找到好的解决办法。我在词汇表弹出窗口中使用了一组字符串。字符串是键,用于从对象中检索定义。我需要按字母顺序对数组进行排序,但一些字符串包含引号,排序后最终出现在第一位。
keys = ['Back Pay', '"Hot Cargo" Agreements', 'Clayton Act',
'Fiduciaries', 'Estoppel', ...]
排序后,我希望列表忽略引号并成为以下内容:
['Back Pay', 'Clayton Act', 'Estoppel',
'Fiduciaries', '"Hot Cargo" Agreements', ...]
但我得到以下信息:
['"Hot Cargo" Agreements', 'Back Pay', 'Clayton Act', 'Estoppel',
'Fiduciaries', ...]
有没有办法在排序过程中忽略引号而不删除它们?它们是术语的一部分,在词汇表弹出窗口中显示时需要出现。
您可以使用
创建自定义排序函数myArray.sort(mysortfunction);
然后在你的函数中去掉引号
function mysortfunction(a,b) {
a = a.replace(/"/g,'');
b = b.replace(/"/g,'');
return (a < b ? -1 : 1);
}
这是一个jsfiddle。
您可以编写忽略引号的自定义排序函数:
var keys = ['Back Pay', '"Hot Cargo" Agreements', 'Clayton Act', 'Fiduciaries', 'Estoppel'];
function removeQuotes(str) {
return str.replace(/['"]+/g, '')
}
var sorted = keys.sort(function(a, b) {
return removeQuotes(a) > removeQuotes(b);
});
console.log(sorted);