Hướng dẫn how do you move the first element of an array to the end in javascript? - làm thế nào để bạn di chuyển phần tử đầu tiên của một mảng đến cuối cùng trong javascript?

Tôi tự hỏi cách nhanh nhất trong JavaScript để di chuyển một phần tử từ đầu của NO___TRANS___PRE___12 đến cuối. Ví dụ nếu chúng ta có

var ary = [8,1,2,3,4,5,6,7];

console.log("Before: " + ary);

ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

console.log("After: " + ary);
3

Và chúng tôi muốn: no___trans___pre___14

Tôi muốn di chuyển phần tử đầu tiên đến cuối. Tôi đã suy nghĩ về việc chuyển đổi phần tử 0 với phần tử 1, sau đó chuyển đổi phần tử 1 với phần tử 2 và cứ thế cho đến khi 8 ở và (về cơ bản là cách thức hoạt động của bong bóng). Tôi đã tự hỏi nếu có một cách nhanh hơn để đưa yếu tố đầu tiên đến cùng.

Tôi sẽ sử dụng các mảng nhỏ (khoảng 10 yếu tố) và tôi muốn tránh no___trans___pre___15 vì nó khá chậm.

Đây là những gì tôi có bây giờ trên Chrome, nó nhanh hơn 45% so với SHIFT bình thường+Push: http://jsperf.com/shift-myfunc

Các mảng sẽ có các đối tượng trong đó cho một trò chơi.

Hỏi ngày 4 tháng 12 năm 2013 lúc 20:59Dec 4, 2013 at 20:59

Hướng dẫn how do you move the first element of an array to the end in javascript? - làm thế nào để bạn di chuyển phần tử đầu tiên của một mảng đến cuối cùng trong javascript?

4

Sử dụng các hàm shift () và push ():

var ary = [8,1,2,3,4,5,6,7];
ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

Example:

var ary = [8,1,2,3,4,5,6,7];

console.log("Before: " + ary);

ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

console.log("After: " + ary);

Đã trả lời ngày 4 tháng 12 năm 2013 lúc 21:03Dec 4, 2013 at 21:03

j08691j08691j08691

200K31 Huy hiệu vàng252 Huy hiệu bạc267 Huy hiệu Đồng31 gold badges252 silver badges267 bronze badges

3

Sử dụng

var ary = [8,1,2,3,4,5,6,7];

console.log("Before: " + ary);

ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

console.log("After: " + ary);
6 và NO___Trans___Pre___17

var a = ["a","b","c"];
var b = a.shift();
a.push(b);

hoặc

var b = a.shift();
a[a.length] = b;

Chỉnh sửa dựa trên câu hỏi cập nhật

Điều gì sẽ là nhanh nhất? Thực sự phụ thuộc vào nội dung của mảng và trình duyệt/phiên bản!

Bây giờ các cách để loại bỏ chỉ mục đầu tiên là gì?

  • var ary = [8,1,2,3,4,5,6,7];
    
    console.log("Before: " + ary);
    
    ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 
    
    console.log("After: " + ary);
    5
  • var ary = [8,1,2,3,4,5,6,7];
    
    console.log("Before: " + ary);
    
    ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 
    
    console.log("After: " + ary);
    9
  • var a = ["a","b","c"];
    var b = a.shift();
    a.push(b);
    
    0

Bây giờ những cách để thêm vào chỉ mục cuối cùng là gì?

  • var a = ["a","b","c"];
    var b = a.shift();
    a.push(b);
    
    1
  • var a = ["a","b","c"];
    var b = a.shift();
    a.push(b);
    
    2
  • No___trans___pre___23 - thậm chí sẽ không thử

Những cách khác

  • Đối với Loop - Tạo mảng mới [sẽ trở nên kinh khủng trên các mảng lớn]

JSPerf:

http://jsperf.com/test-swapping-of-first-to-last


Điều gì thực sự nhanh nhất?

Điều gì là nhanh nhất thực sự phụ thuộc vào những gì bạn đang làm với mảng. Nếu bạn chỉ sử dụng chỉ mục đầu tiên, sẽ nhanh nhất chỉ để làm cho mã của bạn đọc một chỉ mục và không thay đổi các giá trị. Nếu bạn đang sử dụng tất cả các chỉ mục, hơn là chỉ lặp và khi bạn đi đến cuối, hãy bắt đầu trở lại ở 0. Quầy cơ bản.

Đã trả lời ngày 4 tháng 12 năm 2013 lúc 21:02Dec 4, 2013 at 21:02

Hướng dẫn how do you move the first element of an array to the end in javascript? - làm thế nào để bạn di chuyển phần tử đầu tiên của một mảng đến cuối cùng trong javascript?

Epascarelloepascarelloepascarello

199K20 Huy hiệu vàng189 Huy hiệu bạc229 Huy hiệu Đồng20 gold badges189 silver badges229 bronze badges

5

Và đây là phiên bản ES6 ngọt ngào

let arr = [1,2,3,4,5,6]

const [first, ...rest] = arr;
arr = [...rest,first]

Đã trả lời ngày 27 tháng 4 năm 2018 lúc 15:16Apr 27, 2018 at 15:16

NicholasnicholasNicholas

3.1891 Huy hiệu vàng23 Huy hiệu bạc 30 Huy hiệu Đồng1 gold badge23 silver badges30 bronze badges

1

Sử dụng splice để có được phần tử đầu tiên

var first = array.splice(0,1);

Sau đó đẩy để thực hiện nếu cuối cùng.

Vì giá trị trả về của phương thức splice là một mảng, bạn phải nói

array.push(first[0]);

Ví dụ làm việc ở đây: JSfiddle

Đã trả lời ngày 4 tháng 12 năm 2013 lúc 21:01Dec 4, 2013 at 21:01

Chỉ trong trường hợp bạn muốn đặt bất kỳ yếu tố nào vào cuối:

var ary = [8,1,2,3,4,5,6,7];
ary.push(ary.splice(position, 1)[0]);

Đối với NO___Trans___Pre___24 Chỉ cần bọc cái này trong một foreach.

DRKAWASHIMA

7.4994 Huy hiệu vàng39 Huy hiệu bạc 50 Huy hiệu Đồng4 gold badges39 silver badges50 bronze badges

Đã trả lời ngày 8 tháng 10 năm 2015 lúc 14:44Oct 8, 2015 at 14:44

Hướng dẫn how do you move the first element of an array to the end in javascript? - làm thế nào để bạn di chuyển phần tử đầu tiên của một mảng đến cuối cùng trong javascript?

artdias90artdias90artdias90

7351 Huy hiệu vàng9 Huy hiệu bạc18 Huy hiệu đồng1 gold badge9 silver badges18 bronze badges

1

var a = [1,2,3,4,5,6,7,8];
var b= a[7];
var c = a.slice(1, 8);
c.push(b);

EDIT: Có lẽ tốt hơn là chỉ cần thay đổi, như Epascarello đã làm trong câu trả lời của mình. It's probably better to just shift, like epascarello did in his answer.

Đã trả lời ngày 4 tháng 12 năm 2013 lúc 21:03Dec 4, 2013 at 21:03

200K31 Huy hiệu vàng252 Huy hiệu bạc267 Huy hiệu ĐồngJeroen

Sử dụng

var ary = [8,1,2,3,4,5,6,7];

console.log("Before: " + ary);

ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

console.log("After: " + ary);
6 và NO___Trans___Pre___1712 gold badges57 silver badges99 bronze badges

hoặc

const newArr = [
   ...arr.slice(1),
   arr[0]
];

Chỉnh sửa dựa trên câu hỏi cập nhậtJul 9, 2020 at 11:31

Điều gì sẽ là nhanh nhất? Thực sự phụ thuộc vào nội dung của mảng và trình duyệt/phiên bản!

var ary = [8,1,2,3,4,5,6,7];

console.log("Before: " + ary);

ary.push(ary.shift());  // results in [1, 2, 3, 4, 5, 6, 7, 8] 

console.log("After: " + ary);
0

Bây giờ các cách để loại bỏ chỉ mục đầu tiên là gì?

Bây giờ những cách để thêm vào chỉ mục cuối cùng là gì?Dec 28, 2018 at 9:55

Hướng dẫn how do you move the first element of an array to the end in javascript? - làm thế nào để bạn di chuyển phần tử đầu tiên của một mảng đến cuối cùng trong javascript?

No___trans___pre___23 - thậm chí sẽ không thử

Những cách khác

Đối với Loop - Tạo mảng mới [sẽ trở nên kinh khủng trên các mảng lớn]Jul 24, 2019 at 16:21

Điều gì thực sự nhanh nhất?feralamillo

Điều gì là nhanh nhất thực sự phụ thuộc vào những gì bạn đang làm với mảng. Nếu bạn chỉ sử dụng chỉ mục đầu tiên, sẽ nhanh nhất chỉ để làm cho mã của bạn đọc một chỉ mục và không thay đổi các giá trị. Nếu bạn đang sử dụng tất cả các chỉ mục, hơn là chỉ lặp và khi bạn đi đến cuối, hãy bắt đầu trở lại ở 0. Quầy cơ bản.7 silver badges10 bronze badges

Làm thế nào để bạn di chuyển một phần tử trong một mảng?

Logic để thay đổi các phần tử của một mảng theo vị trí n..
Hoạt động thay đổi trái. temp = a [0]; for (i = 0; i
Hoạt động thay đổi đúng. temp = a [n - 1]; for (i = n - 1; i> 0; i--) a [i] = a [i - 1]; a [0] = temp; ....
Trong khi lặp lại..

Làm thế nào để bạn cắt phần tử đầu tiên của một mảng?

Mảng.prototype.Slice () Phương thức Slice () trả về một bản sao nông của một phần của một mảng vào một đối tượng mảng mới được chọn từ đầu đến cuối (không bao gồm kết thúc) trong đó bắt đầu và kết thúc biểu thị chỉ mục của các mục trong mảng đó.Mảng ban đầu sẽ không được sửa đổi. The slice() method returns a shallow copy of a portion of an array into a new array object selected from start to end ( end not included) where start and end represent the index of items in that array. The original array will not be modified.

Làm thế nào để bạn di chuyển số phần tử được chỉ định vào cuối một mảng trong JavaScript?

Chạy A cho vòng lặp từ Index I = 0 Till X-1.Trong mỗi lần lặp lấy phần tử tại chỉ mục hiện tại và nối nó ở cuối mảng.Sau khi hoàn tất, sử dụng phương thức JavaScript Splice () để loại bỏ các phần tử X đầu tiên khỏi mảng để có được mảng kết quả.

Làm thế nào để bạn thay đổi vị trí của một phần tử trong một mảng?

Để thay đổi vị trí của một phần tử trong một mảng: sử dụng phương thức splice () để chèn phần tử vào chỉ mục mới trong mảng.Phương thức Splice thay đổi mảng ban đầu bằng cách loại bỏ hoặc thay thế các phần tử hiện có hoặc thêm các phần tử mới vào một chỉ mục cụ thể.Use the splice() method to insert the element at the new index in the array. The splice method changes the original array by removing or replacing existing elements, or adding new elements at a specific index.