【问题标题】:Order array by property value SAPUI5按属性值 SAPUI5 排序数组
【发布时间】:2021-10-01 09:22:17
【问题描述】:

我有以下数组:

我正在尝试按属性文本对其进行排序,但我尝试了一些方法但任何人都可以:

我试过这个:

array.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0))

我也试过这个:

function compare( a, b ) {
  if ( a.text < b.text ){
    return -1;
  }
  if ( a.text > b.text ){
    return 1;
  }
  return 0;
}

array.sort( compare );

还有更多...任何想法为什么这个 javascript 代码在 sapui5 中不起作用?非常感谢。

【问题讨论】:

  • 预期输出是什么?
  • 此数组按字段文本排序:like this [{text: ESPAÑA, key: ES, icon...}, {text: JAMAICA, key: JM, icon...}, {文本:MÉXICO,键:MX,图标...},{文本:PANAMÁ,键:PM,图标...},{文本:REP。 DOMINICANA,键:DO,图标...}] @HassanImam
  • 当前输出是多少?
  • 上图的顺序是@HassanImam
  • 您的 Javascript 排序功能看起来不错。

标签: javascript arrays sorting sapui5


【解决方案1】:

解决方案是我定义数组时出错,我将结果留在这里,也许它可以帮助某人。我把它放在数组中:

var darray = [{
    text: atext,
    key: aKey,
    icon: aicon
}];

但是没有 [] 因为如果你使用 [] 那么有一个数组里面有很多数组。

无论如何,对我来说只有这种方法有效:

function compare( a, b ) {
  if ( a.text < b.text ){
    return -1;
  }
  if ( a.text > b.text ){
    return 1;
  }
  return 0;
}

array.sort( compare );

这在 SAPUI5 中对我不起作用,也许它不支持语法

array.sort((a,b) => (a.text > b.text) ? 1 : ((b.text > a.text) ? -1 : 0))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 2011-02-23
    • 1970-01-01
    相关资源
    最近更新 更多