相关疑难解决方法(0)

按属性值排序JavaScript对象

如果我有一个JavaScript对象,例如:

var list = {
  "you": 100, 
  "me": 75, 
  "foo": 116, 
  "bar": 15
};
Run Code Online (Sandbox Code Playgroud)

有没有办法根据值对属性进行排序?所以我最终得到了

list = {
  "bar": 15, 
  "me": 75, 
  "you": 100, 
  "foo": 116
};
Run Code Online (Sandbox Code Playgroud)

javascript sorting properties object

629
推荐指数
14
解决办法
69万
查看次数

有没有JavaScript strcmp()?

任何人都可以为我验证这个吗?JavaScript没有strcmp()的版本,所以你必须写出类似的东西:

 ( str1 < str2 ) ? 
            -1 : 
             ( str1 > str2 ? 1 : 0 );
Run Code Online (Sandbox Code Playgroud)

javascript string strcmp

123
推荐指数
4
解决办法
11万
查看次数

通过将a.localeCompare(b)切换为(a <b?-1:(a> b?1:0))进行400x排序加速

通过切换javascript排序函数

myArray.sort(function (a, b) {
  return a.name.localeCompare(b.name);
});
Run Code Online (Sandbox Code Playgroud)

myArray.sort(function (a, b) {
  return (a.name < b.name ? -1 : (a.name > b.name ? 1 : 0));
});
Run Code Online (Sandbox Code Playgroud)

我能够缩短在Chrome中对~1700元素阵列进行排序的时间,从1993毫秒到5毫秒.几乎是400倍的加速.不幸的是,这是以正确排序非英语字符串为代价的.

当我尝试进行排序时,显然我无法阻止我的UI阻塞2秒.有什么我可以做的,以避免可怕的缓慢localeCompare但仍然保持对本地化字符串的支持?

javascript sorting google-chrome

36
推荐指数
3
解决办法
2万
查看次数

我可以使用三等号进行JavaScript字符串比较吗?

我知道这是一个非常基本的问题,但我无法理解Google和Stack Overflow的情况。

在这里这里查看了如何在JavaScript中比较字符串。他们都没有===在答案中提到三等号(),并说最好使用自己的函数(str1 < str2 ? -1 : str1 > str2)。

但是,通过对===Stack Overflow(此处此处)的解释,答案包含字符串比较。从我在那些答案中看到的结果来看,===它可以用于字符串比较,那么为什么不将其包含在字符串比较答案中呢?

我只是想扩展我的JavaScript知识。

感谢您的见解!

javascript string comparison triple-equals

8
推荐指数
1
解决办法
8093
查看次数

通过脚本删除工作表

我有这个代码:

function deleteSheets(){
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheets = ss.getSheets();
 var transp = ss.getSheetByName("aux").getRange("A2:A").getValues();

 var i =0;
 var c = 0;
 var name;

  for(i in sheets){

  for(c in transp){  

  var nome_transp = transp[c][0];

  switch(name = sheets[i].getName()){


       case name == transp[c]:
       ss.deleteSheet(sheets[i]);
       break;

      case name == "aux":
        ss.deleteSheet(sheets[i]);
        break;

      case name == "nulos":
        ss.deleteSheet(sheets[i]);
        break;

       case name == "Sem Transportadora":
        ss.deleteSheet(sheets[i]);
        break;

  }



}

}

}
Run Code Online (Sandbox Code Playgroud)

我可以通过调试看到“sheets”和“transp”中的计数器和值是正确的,但它们从不删除它们各自的表,“aux”、“nulos”和“Sem transportadora”也不删除。是的,工作表的名称与数组相同。

任何见解?提前致谢!

google-sheets google-apps-script

4
推荐指数
1
解决办法
2万
查看次数

检查两个字符串是否在JavaScript中共享一个公共子字符串

可能重复:
在Java中比较字符串的最佳方法?

JavaScript中有没有一种快速的方法来找出2个字符串是否包含相同的子字符串?例如,我有以下两个字符串:“ audi是一辆汽车”和“ audiA8”。

如您所见,两个字符串中都包含“ audi”一词,但indexOf由于两个字符串中都有其他字符,因此我们无法使用简单的或RegExp 来找到它。

javascript

3
推荐指数
2
解决办法
6479
查看次数

按对象属性对javascript对象数组进行排序

我正在尝试对数组进行排序.例如,给定数组a(下面),我想返回数组b.

我知道我可以做a.sort(),但是,我不想对实际的数组元素进行排序,而是对数组元素的属性(本例中的s)进行排序.如何实现这一目标?

谢谢

var a=[
  {s:"ced",o:{obj:1}},
  {s:"cde",o:{obj:2}},
  {s:"ade",o:{obj:3}},
  {s:"bde",o:{obj:4}}
]

var b=[
  {s:"ade",o:{obj:3}},
  {s:"bde",o:{obj:4}},
  {s:"cde",o:{obj:2}},
  {s:"ced",o:{obj:1}}
]
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
296
查看次数