let leftSide = myArray.splice(0, Math.ceil(myArray.length/2));
//The right side is stored in "myArray"
Ví dụ:
let letters = ['a', 'b', 'c', 'd', 'e'];
let leftSide = letters.splice(0, Math.ceil(letters.length /2));
let rightSide = letters;
console.log(leftSide);
=> ['a', 'b', 'c']
console.log(rightSide);
=> ['d', 'e']
thông tin
thêm:splice
in the MDN docs
Lưu ý rằng điều này sẽ thay đổi mảng ban đầu của bạn. Nếu bạn muốn giữ mảng ban đầu, sao chép mảng, sau đó sử dụng mối nối trên mảng nhân bản. Từ một SO question về mảng nhân bản:
Hiện đã có một CHUẨN MỰC chủ đề huuuge, cung cấp thông tin sau:
cho các trình duyệt chớp cắt() là phương pháp nhanh nhất, concat() là chậm hơn một chút và vòng lặp chậm hơn 2,4 lần.
cho các trình duyệt khác trong khi vòng lặp là phương pháp nhanh nhất, vì các trình duyệt đó không có tối ưu hóa nội bộ cho slice và concat.
//Fastest for Blink browsers (Opera/Chromium):
let clonedArray = originalArray.slice();
//For other browsers:
let clonedArray = [];
var i = myArray.length;
while (i--) clonedArray[i] = myArray[i];
Làm thế nào bạn có thể thấy cách lớn bạn muốn mỗi nửa được? –
-1 bởi vì bạn có thể xác định rằng chỉ bằng cách suy nghĩ về nó. Điểm nửa chừng - đối số cho 'splice' - là khi kích thước mảng là' N'? Và làm thế nào để bạn xác định 'N'? –
nếu có số lẻ thì sao? Không có 'Nửa' .... chỉ cần nói! – Relic