按属性值对对象的javascript数组排序,并按条件重新排序
我有一组对象,如:按属性值对对象的javascript数组排序,并按条件重新排序,javascript,arrays,sorting,object,Javascript,Arrays,Sorting,Object,我有一组对象,如: var newArray=[ {value:“P1”}, {值:“P2/S2”}, {value:“P2”}, {value:“P1”}, {值:“P1/S2”}, {值:“P1/S3”}, {值:“P2/S1”}, {值:“P1/S3”}, {值:“P2/S2”}, {value:“P1”}, {value:“P2”}, {值:“P3”} ]; 功能比较(a、b){ 如果(a值b值){ 返回1; } 返回0; } 排序(比较); log(newArray)您可以添加后缀并
var newArray=[
{value:“P1”},
{值:“P2/S2”},
{value:“P2”},
{value:“P1”},
{值:“P1/S2”},
{值:“P1/S3”},
{值:“P2/S1”},
{值:“P1/S3”},
{值:“P2/S2”},
{value:“P1”},
{value:“P2”},
{值:“P3”}
];
功能比较(a、b){
如果(a值b值){
返回1;
}
返回0;
}
排序(比较);
log(newArray)代码>您可以添加后缀并将较小的字符串排序到底部
函数比较({value:a},{value:b}){
a+=‘ZZZ’;
b+=‘ZZZ’;
返回a>b | |-(a
。作为控制台包装{max height:100%!important;top:0;}
您可以添加后缀并将较小的字符串排序到底部
函数比较({value:a},{value:b}){
a+=‘ZZZ’;
b+=‘ZZZ’;
返回a>b | |-(a
。作为控制台包装{最大高度:100%!重要;顶部:0;}
可能会计算重量值?例如:
function computeWeight(str) {
var weight = 0;
for (var i = str.length-1; i >= 0; i--) {
weight = weight + (str.charCodeAt(i) * Math.pow(10, i));
}
return weight;
}
这样,较长的字符串将比较小的字符串具有更大的权重,因为它们有更多的符号。然后您可以在您的比较中使用该函数
也许可以计算值权重?例如:
function computeWeight(str) {
var weight = 0;
for (var i = str.length-1; i >= 0; i--) {
weight = weight + (str.charCodeAt(i) * Math.pow(10, i));
}
return weight;
}
这样,较长的字符串将比较小的字符串具有更大的权重,因为它们有更多的符号。然后您可以在比较中使用该函数