Tôi có một đoạn mã JavaScript bằng cách sử dụng một vòng lặp để đảo ngược một chuỗi. Tuy nhiên, tôi muốn biết nếu có thể sử dụng một vòng trong vòng lặp và làm thế nào tôi sẽ đi về điều đó?
function reverse[str]{
var reversedString = '';
for [var i = str.length - 1; i >= 0; i--]{
reversedString = reversedString + str[i];
}
return reversedString;
}
alert[reverse['hello']];
John c
2.9423 huy hiệu vàng33 Huy hiệu bạc47 Huy hiệu đồng3 gold badges33 silver badges47 bronze badges
Đã hỏi ngày 4 tháng 1 năm 2018 lúc 9:04Jan 4, 2018 at 9:04
2
Từ tài liệu MDN
vì ... không nên sử dụng để lặp lại một mảng trong đó thứ tự chỉ mục là quan trọng.
Các chỉ mục mảng chỉ là các thuộc tính có thể suy định với tên số nguyên và khác giống hệt với các thuộc tính đối tượng chung. Không có gì đảm bảo rằng ... trong sẽ trả về các chỉ mục theo bất kỳ thứ tự cụ thể nào. Các câu lệnh cho ... trong câu lệnh Loop sẽ trả về tất cả các thuộc tính có thể phản đối, bao gồm cả những thuộc tính có tên số lượng không phải là và các thuộc tính được kế thừa.
Bởi vì thứ tự lặp lại phụ thuộc vào việc thực hiện, việc lặp lại trên một mảng có thể không truy cập các yếu tố theo thứ tự nhất quán. Do đó, tốt hơn là sử dụng một vòng lặp cho một chỉ số số [hoặc mảng.
let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
Feature Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 38 12 131 No 25 8
Break
let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
1 [xem Hello Creeping In]let iterable = '1234567';
String.prototype.hello = "hello";
let reversed = "";
for [let index in iterable] {
reversed = iterable[index] + reversed;
}
console.log[reversed];
Đã trả lời ngày 4 tháng 1 năm 2018 lúc 9:22Jan 4, 2018 at 9:22
SabithPockersabithPockersabithpocker
Huy hiệu vàng 14,9K11 gold badge40 silver badges72 bronze badges
1
Ngay cả khi sử dụng chức năng mũi tên, bạn có thể đảo ngược một chuỗi.
const reverseString = [str] => str.split[""].reverse[].join[""];
console.log[reverseString["hello"]]
Đã trả lời ngày 6 tháng 12 năm 2021 lúc 21:33Dec 6, 2021 at 21:33
Bạn không nên sử dụng
let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
2 trong trường hợp này. let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
2 được thiết kế để lặp lại thông qua các chữ cái, không phải cho các chuỗi hoặc mảng.[...'mystring'].reverse[].join['']
Array.from['mystring'].reverse[].join['']
Tôi khuyên bạn nên sử dụng cú pháp lan truyền hoặc
let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
4 để chuyển đổi các chuỗi thành các mảng thay vì let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
5 vì let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
6 sẽ không hoạt động trong trường hợp các ký tự unicode multibyte.console.log[[...'\uD83D\uDE80']];
console.log['\uD83D\uDE80'.split['']];
Đã trả lời ngày 4 tháng 1 năm 2018 lúc 9:32Jan 4, 2018 at 9:32
LewislewisLewis
13.5K12 Huy hiệu vàng63 Huy hiệu bạc82 Huy hiệu đồng12 gold badges63 silver badges82 bronze badges
1
Không cần sử dụng cho trong
'mystring'.split[''].reverse[].join['']
Đã trả lời ngày 4 tháng 1 năm 2018 lúc 9:06Jan 4, 2018 at 9:06
Fan Cheungfan CheungFan Cheung
10,2K3 Huy hiệu vàng17 Huy hiệu bạc38 Huy hiệu đồng3 gold badges17 silver badges38 bronze badges
3
Bạn có thể sử dụng các hàm split [] & giảm []
let str = "hello";
return str.split[''].reduce[[rev,char] =>
char + rev,
''];
Đã trả lời ngày 31 tháng 12 năm 2021 lúc 6:36Dec 31, 2021 at 6:36
Nawaz Uddinnawaz Uddinnawaz uddin
3472 Huy hiệu bạc12 Huy hiệu Đồng2 silver badges12 bronze badges
Đảo ngược chuỗi bằng cách sử dụng vòng lặp
function reverseStr[word] {
let reversed = '';
let i = 0;
while [i < word.length] {
reversed = word[i] + reversed;
i++;
}
return reversed;
}
Đã trả lời ngày 15 tháng 1 lúc 2:44Jan 15 at 2:44
let iterable = '1234567';
String.prototype.hello = "hello"; // doesn't affect
let reversed = "";
for [let value of iterable] {
reversed = value + reversed;
}
console.log[reversed];
0
Đã trả lời ngày 7 tháng 2 lúc 8:50Feb 7 at 8:50