Bạn đã bao giờ có nhiệm vụ tạo danh sách các số từ đầu đến giá trị cuối chưa? . Có một số cách để giải quyết tình trạng khó khăn này. cho vòng lặp, đệ quy, phương thức
function range[start, end] {
if[start === end] return [start];
// recursive case
}
1, tham số bước, tạo chuỗi ký tự, v.v.Vì vậy, chúng ta cần tạo một hàm phạm vi lấy giá trị bắt đầu và kết thúc, đồng thời trả về danh sách các số trong phạm vi đó. Cách rõ ràng nhất là sử dụng vòng lặp for
cho vòng lặp
Chúng ta lấy giá trị đầu và cuối làm tham số hàm, tạo một mảng trống, sau đó sử dụng vòng lặp for từ giá trị đầu đến cuối để thêm các phần tử vào cuối mảng
function range[start, end] {
const ans = [ ];
for [let i = start; i i + start];
}
var myArray = range[15, 21];
console.log[myArray];
//Output:
// [
// 15, 16, 17, 18,
// 19, 20, 21
// ]
Mảng phương thức. từ[]
Phương thức tĩnh
function range[start, end] {
if[start === end] return [start];
// recursive case
}
1 tạo một bản sao mới của một đối tượng giống như mảng hoặc có thể lặp lại. Nó nhận một tham số mapFn có thể, cho phép bạn thực thi hàm map[] cho từng phần tử của mảng đã tạoHàm mũi tên.
function range[start, end] {
if[start === end] return [start];
return [start, ...range[start + 1, end]];
}
const dates = range[2010, 2020];
console.log[dates];
//Output:
// [
// 2010, 2011, 2012,
// 2013, 2014, 2015,
// 2016, 2017, 2018,
// 2019, 2020
// ]
5. Các tham số trong ngoặc đơn được chuyển đến hàm function range[start, end] {
if[start === end] return [start];
// recursive case
}
6. Vì vậy, chúng tôi tạo một mảng bằng cách chỉ định độ dài của nó trong dấu ngoặc nhọn function range[start, end] {
if[start === end] return [start];
return [start, ...range[start + 1, end]];
}
const dates = range[2010, 2020];
console.log[dates];
//Output:
// [
// 2010, 2011, 2012,
// 2013, 2014, 2015,
// 2016, 2017, 2018,
// 2019, 2020
// ]
7 và sau đó áp dụng phương thức map[]function range[start, end] {
const mylength = end - start + 1;
return Array.from[{ length: mylength }, [_, i] => start + i];
}
const myArr = range[105, 110];
console.log[myArr];
// Output:
// [ 105, 106, 107, 108, 109, 110 ]
tạo trình tự
Khi xử lý các phạm vi lớn, về cơ bản là tạo ra các mảng lớn, chúng ta có thể tối ưu hóa mức tiêu thụ bộ nhớ bằng cách sử dụng trình tạo. Từ khóa
function range[start, end] {
if[start === end] return [start];
return [start, ...range[start + 1, end]];
}
const dates = range[2010, 2020];
console.log[dates];
//Output:
// [
// 2010, 2011, 2012,
// 2013, 2014, 2015,
// 2016, 2017, 2018,
// 2019, 2020
// ]
8 theo sau là [hàm] xác định hàm tạoChức năng này khác với chức năng thông thường ở chỗ bạn có thể thoát ra và vào lại. Đồng thời, bối cảnh của nó, tôi. e. giá trị biến được lưu vào các mục tiếp theo. Câu lệnh suất trả về một giá trị và thoát khỏi hàm, trong khi câu lệnh suất* ủy thác việc thực thi cho một hàm khác. Đây là ví dụ của chúng ta sẽ như thế nào
function* range[start, end] {
for [let i = start; i i + start];
}
var myArray = range[15, 21];
console.log[myArray];
//Output:
// [
// 15, 16, 17, 18,
// 19, 20, 21
// ]
2, và giá trị phần tử là function range[start, end] {
return [new Array[end - start + 1]].fill[undefined].map[[_, i] => i + start];
}
var myArray = range[15, 21];
console.log[myArray];
//Output:
// [
// 15, 16, 17, 18,
// 19, 20, 21
// ]
3 sẽ được viết bằng arrow functionconst range = [start, stop, step] => Array.from[{ length: [stop - start] / step + 1}, [_, i] => start + [i * step]];
const myArr = range[23, 29, 0.5];
console.log[myArr];
//Output:
// [
// 23, 23.5, 24, 24.5,
// 25, 25.5, 26, 26.5,
// 27, 27.5, 28, 28.5,
// 29
// ]
Bây giờ, hãy thử tạo một chuỗi ký tự, ví dụ: bảng chữ cái. Chúng tôi sẽ sử dụng hàm phạm vi đã có sẵn với tham số bước
Phương thức
function range[start, end] {
return [new Array[end - start + 1]].fill[undefined].map[[_, i] => i + start];
}
var myArray = range[15, 21];
console.log[myArray];
//Output:
// [
// 15, 16, 17, 18,
// 19, 20, 21
// ]
4 trả về mã ký tự UTF-16 của chuỗi, là một số nguyên từ 0 đến 65535, tham số chỉ mục xác định vị trí của ký tự. Vì các ký tự A và Z trong bảng Unicode được sắp xếp theo thứ tự nên chúng ta có thể sử dụng mã của chúng làm giá trị bắt đầu và kết thúc cho hàm phạm vi, i. e. lần lượt là 65 và 90Phương thức tĩnh
function range[start, end] {
return [new Array[end - start + 1]].fill[undefined].map[[_, i] => i + start];
}
var myArray = range[15, 21];
console.log[myArray];
//Output:
// [
// 15, 16, 17, 18,
// 19, 20, 21
// ]
5 trả về một chuỗi được tạo từ một chuỗi mã UTF-16. Tham số num1 chỉ định giá trị mã ký tự. Bây giờ, hãy thêm một hàm map[] để mỗi mã được trả về bởi hàm phạm vi được chuyển đổi thành một ký tự, tôi. e. thư