链循环中未执行的链方法

问题描述 投票:0回答:2

我坚持在for循环中操作数组字符串,我相信我没有犯任何语法错误,但它仍然没有按预期工作:

var words = ['bac','ccc','cbd'];

for(var i = 0; i < words.length; i++){
    words[i].split('').sort().join('');
 } //return ['bac','ccc','cbd'], which was expected to be words = ['abc', 'ccc','bcd'];

但它没有循环来自words的所有元素,如:

words[0].split('').sort().join(''); // return 'abc'

所以我想知道为什么这些链方法不能在循环中工作?

javascript string sorting
2个回答
4
投票

你忘记了任务words[i]=words[i].split('').sort().join('');

var words = ['bac','ccc','cbd'];

for(var i = 0; i < words.length; i++){
    words[i]=words[i].split('').sort().join('');
    
 } // expected to be words = ['abc', 'ccc','bcd'];
console.log(words)

0
投票

您必须使用赋值,因为VanillaJS字符串函数不会单独为参数赋值,也不会作为引用传递。它似乎作为值参数传递。

var words = ['bac','ccc','cbd'];

for(var i = 0; i < words.length; i++){
   words[i]= words[i].split('').sort().join('');
 } 
   console.log(words);

查看下面的截图。它向您展示它即使没有循环也不会像您期望的那样工作。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.