0

有没有办法将我的 for 循环设置为string[i].length == length在将长度值减少 1 之前命中所有实例?我已经搞砸了添加while循环,但我无法安静地得到它。

该脚本旨在根据每个项目的长度从最大到最小对数组进行排序。唯一的问题是我不知道如何在不跳过已经检测到的数组项长度的情况下对其进行排序。

var string = ["hello", "world", "fishing", "before", "all", "test"];
var length = 0;
word = 0;
for (x = 0; x < string.length; x++) {
if (string[x].length > length) {
   var length = string[x].length;
   word = string[x];
}
}
string1 = [];
for (i = 0; i < string.length; i++) {
if (string[i].length == length) {
  length = string[i].length - 1;
  string1.push(string[i]);
  i = 0;
}
}
console.log(string1);    
4

2 回答 2

2

为什么不使用Array.sort()

var string = ["hello", "world", "fishing", "before", "all", "test"];

string.sort(function(o1, o2){
    return o1.length - o2.length;
})

console.log(string)

演示:小提琴

手动排序:小提琴

于 2013-10-29T03:13:19.430 回答
0

为什么不使用 javascript 的内置sort函数http://www.w3schools.com/jsref/jsref_sort.asp

您可以传递它sortfunction- 使用它来比较字符串的长度并让 javascript 为您进行排序。

于 2013-10-29T03:12:20.013 回答