Computer >> Máy Tính >  >> Lập trình >> Javascript

Có thể có JavaScript split () bắt đầu ở chỉ mục 1 không?

Kể từ phương thức String.prototype.split () chính thức, không có cách nào để bắt đầu chuỗi splittinga từ chỉ mục 1 hoặc cho tổng thể từ bất kỳ chỉ mục n nào, nhưng với một chút chỉnh sửa trong quá trình sử dụng split (), chúng ta có thể đạt được chức năng này.

Chúng tôi đã làm theo cách tiếp cận sau -

Chúng tôi sẽ tạo hai mảng -

  • Một cái được chia từ 0 đến cuối --- ACTUAL
  • Thứ hai được tách từ 0 ĐẾN BẮT ĐẦU --- LEFTOVER

Bây giờ, chúng ta lặp lại từng phần tử còn lại và ghép nó khỏi mảng thực tế. Do đó, về mặt lý thuyết mảng thực tế được tách từ STARTINDEX thành END.

Ví dụ

const string = 'The quick brown fox jumped over the wall';
const returnSplittedArray = (str, startPosition, seperator=" ") => {
   const leftOver = str.split(seperator, startPosition);
   const actual = str.split(seperator);
   leftOver.forEach(left => {
      actual.splice(actual.indexOf(left), 1);
   })
   return actual;
}
console.log(returnSplittedArray(string, 5, " "));

Đầu ra

["over", "the", "wall"]