我需要按名称排序数组
['b','a' ,'c' ,'e' ,'d' , .....]
但我希望'c'推送以resurt数组开始!
['c','a' , 'b' , 'd' ,'e' , ....]
我怎么能这样做?
function sortByKey(array, key) {
return array.sort(function (a, b) {
var x = a[key];
var y = b[key];
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
});
是的我可以从数组中删除'c'并将其添加到最终结果中但我会搜索 最佳案例
答案 0 :(得分:4)
您可以创建另一个允许您配置priority
元素的数组,然后您可以比较自定义排序函数中的值。
注意:对Fast
不确定,但这样可以对优先级元素进行排序和配置
var data = ['b', 'a', 'c', 'e', 'd']
var priority = ['c'];
function getPriority(item) {
var max_value = 9999999999;
var index = priority.indexOf(item);
return index === -1 ? max_value : index
}
data.sort(function(a, b) {
if ([a, b].some(function(x) {
return priority.indexOf(x) > -1
})) {
return getPriority(a) - getPriority(b);
} else {
return a.localeCompare(b);
}
});
console.log(data)
&#13;
答案 1 :(得分:2)
function sortByKey(array) {
return array.sort(function(a, b) {
if (a == 'c') {
return -1;
} else if (b == 'c') {
return 1;
} else {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}
});
}
var data = ['b', 'a', 'c', 'e', 'd']
console.log(sortByKey(data))
答案 2 :(得分:2)
您可以利用Array.prototype.sort()并执行以下操作:
const items = ['b', 'a', 'c', 'e', 'd']
//const items = ['c', 'a', 'b', 'd', 'e'];
const sortedItems = items.sort(function(a, b) {
if (a === 'c' || b === 'c') {
return -2;
}
if (a < b) {
return -1;
}
if (a > b) {
return 1;
}
return 0;
});
console.log(sortedItems)
&#13;
我说你应该一直使用原生的东西,因为如果某些引擎决定优化这种方法,你将来可能会受益。
答案 3 :(得分:2)
使用String.localeCompare()
函数的简单解决方案:
var arr = ['b','a' ,'c' ,'e' ,'d'];
arr.sort(function (a,b) {
return (a == 'c' || b == 'c')? 1 : a.localeCompare(b);
});
console.log(arr);
答案 4 :(得分:1)
使用javascript函数获得最快的结果
jsonb_array_elements
select t ->> 'Version'
from assessment_info, json_array_elements(result_json -> 'PRODUCTION' -> 'KBM') as t(d)
答案 5 :(得分:1)
您可以使用特殊处理方法对value2_start = content.find('value', value1_end)
value2_end = content.find(';', value2_start)
的顺序进行排序,并使用排序顺序的对象和默认值。
此方法允许将另一个字符串移动到排序顺序的末尾,其值为'c'
或任何大于1
的值。
0
答案 6 :(得分:1)
第1步:
使用数组sort()方法对数组进行排序。
第2步:
使用数组filter()方法从数组中过滤元素。
第3步:
使用数组unshift()方法。它将与数组push()方法一样工作。唯一的区别是它将元素添加到数组的开头而不是结尾。
工作演示:
var orgArray = ['b','a' ,'c' ,'e' ,'d','c'];
orgArray.sort();
var newArray = orgArray.filter(function(element){
return element !== "c";
});
newArray.unshift("c");
console.log(newArray);