Có chức năng phạm vi trong javascript không?

Nhiều khi viết các hàm khác nhau, chúng ta có thể muốn tạo các dãy để làm việc với một số dữ liệu. Một phạm vi đại diện cho dữ liệu trong một mảng hoặc đối tượng có giá trị đầu và cuối

Rất nhiều ngôn ngữ đã tích hợp sẵn các phương thức để tạo phạm vi, ví dụ như

function charRange[start, stop] {
  const range = [];
  const end = stop.charCodeAt[0]
  for [let i = start.charCodeAt[0]; i  [ 'A', 'B', 'C', 'D', 'E', 'F' ]
9 trong Ruby

['a'..'e'].to_a => ["a", "b", "c", "d", "e"]

JavaScript không có phương thức tích hợp cụ thể cho việc này, nhưng có nhiều cách chúng ta có thể tạo phạm vi. Chúng tôi sẽ chỉ cho bạn ba

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Tên

Họ

Email

Điện thoại .


By continuing you agree to our Terms of Service and Privacy Policy , and you consent to receive offers and opportunities from Career Karma by telephone, text message, and email.

_. phạm vi [] – Lodash

Nếu chúng ta muốn tạo một dãy số và chúng ta muốn chúng nhanh nhất có thể, chúng ta có thể sử dụng phương thức sử dụng Lodash

function range[start, end] {
if[start === end] return [start];
// recursive case
}
0

Phương thức này trả về một mảng và nhận ba đối số. Giá trị đầu tiên cho phần đầu của phạm vi, thứ hai cho phần cuối của phạm vi [tối đa] và thứ ba cho bước hoặc giá trị tăng/giảm theo

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]

Lưu ý rằng nếu chỉ có một đối số được cung cấp thì nó sẽ tạo ra một phạm vi lên đến số được chỉ định. Ngoài ra, hãy nhớ rằng Lodash là một thư viện JavaScript mà chúng ta cần cài đặt riêng

Tạo hàm phạm vi [] của riêng chúng tôi

Nếu chúng tôi muốn tiết kiệm một số chi phí, chúng tôi có thể tạo hàm phạm vi số của riêng mình. Hóa ra việc tạo ra phạm vi của riêng chúng ta khá dễ dàng

function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]

Điều này rất dễ viết và chúng ta có thể tránh nhập các thư viện như Lodash chỉ cho một chức năng

Tạo một hàm phạm vi không phải số

Bây giờ bạn có thể hỏi, còn phạm vi không phải số, như ký tự thì sao?

Ở đây, chúng tôi sẽ sử dụng phương pháp

function range[start, end] {
if[start === end] return [start];
// recursive case
}
1 để lấy một số mà sau đó chúng tôi sẽ tăng lên và sau đó đẩy vào một mảng bằng cách sử dụng
function range[start, end] {
if[start === end] return [start];
// recursive case
}
2 , trả về một ký tự từ mã ký tự

function charRange[start, stop] {
  const range = [];
  const end = stop.charCodeAt[0]
  for [let i = start.charCodeAt[0]; i  [ 'A', 'B', 'C', 'D', 'E', 'F' ]

Điều đó dễ dàng hơn bạn nghĩ phải không?

Phần kết luận

Bây giờ bạn đã biết việc tự tạo phạm vi bằng JavaScript có thể dễ dàng như thế nào. Vui lòng đảm bảo rằng bạn đã lưu các chức năng tiện dụng này, chúng tôi chắc chắn rằng chúng sẽ được sử dụng vào một lúc nào đó

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  [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
1

Đây là một giải pháp thanh lịch hơn. Nhưng chúng ta có thể đi xa hơn nữa nếu chúng ta sử dụng hàm tạo mới

function range[start, end] {
if[start === end] return [start];
// recursive case
}
5, tạo ra một mảng có n phần tử. Đồng thời, chúng tôi sẽ làm cho mã của chúng tôi rõ ràng và đầy đủ hơn

Bản đồ phương thức[]

Vì vậy, chúng tôi đã xây dựng một mảng với độ dài nhất định. Bây giờ nếu chúng ta có một danh sách gồm n phần tử, chúng ta có thể tạo một phạm vi từ nó bằng cách ánh xạ mọi phần tử vào chỉ mục của nó, áp dụng

function range[start, end] {
if[start === end] return [start];
// recursive case
}
6. Nhưng mảng vẫn chưa có giá trị phần tử để lặp lại nên hàm map[] không hoạt động. Hãy sử dụng phương thức
function range[start, end] {
if[start === end] return [start];
// recursive case
}
7 để điền vào các phần tử mảng các giá trị không xác định. Bây giờ chúng ta có thể sử dụng
function range[start, end] {
if[start === end] return [start];
// recursive case
}
6

Phương thức

function range[start, end] {
if[start === end] return [start];
// recursive case
}
6 tạo một mảng mới chứa đầy các giá trị là kết quả của việc gọi hàm đã cho một lần cho mỗi phần tử mảng. Nó chấp nhận tối đa 3 tham số. phần tử, chỉ số, mảng

Bây giờ nếu chúng ta chỉ định 2 tham số giữ chỗ [“

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
10” để bỏ qua giá trị ban đầu của phần tử và chỉ mục], chúng ta có thể gán giá trị mới cho phần tử. Sử dụng chức năng mũi tên.
_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
11

Độ dài của mảng được tính theo công thức

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
12 và giá trị của phần tử là
_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
13. Kết quả cuối cùng sẽ như sau

function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
1

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ạo

Hàm mũi tên.

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
15. 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
_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
17 và sau đó áp dụng phương thức map[]

function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
6

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

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
18 theo sau là [hàm] xác định hàm tạo

Chứ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, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
8

Chúng ta có thể sử dụng trình tạo này trong

_.range[-2];
// => [0, -1]
 
_.range[1, 3];
// => [1, 2]
 
_.range[1, 10, 4];
// => [1, 5, 9]
19 để lặp qua mảng có thể lặp lại, trong trường hợp của chúng tôi là mảng
function range[start, end] {
if[start === end] return [start];
// recursive case
}
2, để xuất kết quả hoặc sử dụng toán tử trải rộng mảng để lấy tất cả các giá trị [điều này tạo ra cùng một mảng như cách tiếp cận không phải trình tạo]

function charRange[start, stop] {
  const range = [];
  const end = stop.charCodeAt[0]
  for [let i = start.charCodeAt[0]; i  [ 'A', 'B', 'C', 'D', 'E', 'F' ]
1

Hầu hết các lập trình viên cố gắng tránh vòng lặp for, chúng ta cũng có thể định nghĩa đệ quy trình tạo, đồng thời kiểm tra xem giá trị bắt đầu và kết thúc có giống nhau không. Hãy điền vào mảng bằng cách sử dụng toán tử trải rộng mảng

function charRange[start, stop] {
  const range = [];
  const end = stop.charCodeAt[0]
  for [let i = start.charCodeAt[0]; i  [ 'A', 'B', 'C', 'D', 'E', 'F' ]
2

Hãy thêm tham số bước, tôi. e. mỗi số được tạo tiếp theo sẽ thay đổi bao nhiêu. Chúng ta sử dụng phương thức

function range[start, end] {
if[start === end] return [start];
// recursive case
}
1 với tham số mapFn, độ dài mảng sẽ được tính theo công thức
function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
12 và giá trị phần tử là
function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
13 sẽ được viết bằng arrow function

function charRange[start, stop] {
  const range = [];
  const end = stop.charCodeAt[0]
  for [let i = start.charCodeAt[0]; i  [ 'A', 'B', 'C', 'D', 'E', 'F' ]
6

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, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
14 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à 90

Phương thức tĩnh

function range[start, end, step = 1]{
  if[start === end] return [start];
  const range = [];
  for[let i = start; i  [1, 5, 9]
range[1, 10]
// => [ 1, 2, 3, 4,  5, 6, 7, 8, 9, 10]
15 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ư

Làm cách nào để sử dụng hàm phạm vi trong JavaScript?

Phạm vi JavaScript Cách tạo phạm vi trong Javascript. phạm vi là một hàm về cơ bản lấy chỉ mục bắt đầu và chỉ mục kết thúc, sau đó trả về danh sách tất cả các số nguyên từ đầu đến cuối. Cách rõ ràng nhất là sử dụng vòng lặp for

Làm cách nào để có phạm vi trong JavaScript?

Một đối tượng Range được tạo không có tham số. let range = new Range[]; Sau đó, chúng ta có thể đặt ranh giới lựa chọn bằng cách sử dụng phạm vi. setStart [nút, bù] và phạm vi.

Làm cách nào để viết điều kiện phạm vi trong JavaScript?

hàm số_phạm vi[x, y] { if [[x >= 40 && x = 40 && y = 70 && x = 70 && y

Chủ Đề