簡體   English   中英

使用 for 循環而不是 map 以小寫形式返回數組中的所有值

[英]Return all values from array in lowercase using for loop instead of map

var sorted = words.map(function(value) {
    return value.toLowerCase();
}).sort();

這段代碼以小寫形式返回 words 數組中的所有值並對它們進行排序,但我想用for循環做同樣的事情,但我不能。

我試過了:

for (var i = 0; i < words.length; i++) {
  sorted = [];
  sorted.push(words[i].toLowerCase());
};

您現在還可以通過使用箭頭函數和數組的map()方法非常簡單地實現這一點:

 var words = ['Foo','Bar','Fizz','Buzz'].map(v => v.toLowerCase()); console.log(words);

請注意map()僅適用於支持 ES2015 的瀏覽器。 換句話說,除了 IE8 及更低版本之外的任何東西。

同樣,箭頭函數在 IE 中根本不起作用。 對於舊版瀏覽器安全版本,您需要使用匿名函數:

 var words = ['Foo','Bar','Fizz','Buzz'].map(function(v) { return v.toLowerCase(); }); console.log(words);

推被過度使用。

for (var i = 0, L=words.length ; i < L; i++) {
  sorted[i]=words[i].toLowerCase();
}

如果您想要快速且有大量單詞,請調用 toLowerCase 一次-

sorted=words.join('|').toLowerCase().split('|');

對於數組, +=運算符不會執行您期望的操作 - 它在數組上調用.toString並將它們連接起來。 相反,您想使用數組push方法

var sorted = [];
for (var i = 0; i < words.length; i++) {
    sorted.push(words[i].toLowerCase());
}
sorted.sort();

我知道這是后來的答案,但我找到了一種更漂亮、更簡單的方法:

yourArray = ['this', 'iS an', 'arrAy'];
console.log(yourArray); // ["this", "iS an", "arrAy"]

yourLowerArray = yourArray.toLocaleString().toLowerCase().split(',');
console.log(yourLowerArray); //["this", "is an", "array"]

解釋它的作用:

.toLocaleString() -> 將數組轉換為逗號分隔的字符串。

.toLowerCase() -> 將該字符串轉換為小寫。

.split(',') -> 將小寫字符串轉換回數組。

希望這對你有幫助!

toLowerCase()是函數,你應該在它后面寫()

toLowerCase 方法沒有在您的代碼中被調用,只是被引用。 將循環中的行更改為:

sorted += words[i].toLowerCase();

添加()來調用方法。

完整的工作代碼:

var words = ["FOO", "BAR"];
var sorted = [];

for (var i = 0; i < words.length; i++) {

        sorted.push(words[i].toLowerCase());
};

console.log(sorted);

我假設你聲明sorted為一個數組。 如果是這樣,請使用push方法而不是+=

for (var i = 0; i < words.length; i++) {
  sorted.push(words[i].toLowerCase());
}
words.forEach(function (item, index) {
    words[index] = item.toLowerCase();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM