Hướng dẫn javascript move item up or down in array - javascript di chuyển mục lên hoặc xuống trong mảng

"; } return table; } // Move the object in the array up or down function move(value, positionChange) { // On run, move the object in the array up or down respectivly. }

Tôi có một bảng dữ liệu được hiển thị từ một đối tượng. Cụ thể, mỗi hàng của bảng là một giá trị từ mảng.

Tôi cần có khả năng di chuyển đối tượng lên hoặc xuống trong mảng, tùy thuộc vào nút bấm.

var obj = [{
  "RuleDetailID": "11624",
  "AttributeValue": "172",
  "Value": "Account Manager",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11626",
  "AttributeValue": "686",
  "Value": "Agent",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11625",
  "AttributeValue": "180",
  "Value": "Analyst",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11629",
  "AttributeValue": "807",
  "Value": "Individual Contributor",
  "IsValueRetired": "0"
}, {
  "RuleDetailID": "11627",
  "AttributeValue": "690",
  "Value": "Senior Agent",
  "IsValueRetired": "0"
}];

// Exmaple only, just rendering a table
function renderExample() {
  var table = '';
  for (var key in obj) {
    table += "
" + obj[key].Value + "Move UpMove Down

Điều này có thể được thực hiện với một cái gì đó như lodash hay nó là một cách tiếp cận thủ công hơn? Tôi đã thử bằng cách lấy chỉ mục của mục đã nhấp và sau đó thực hiện +1 hoặc -1 phù hợp để cung cấp cho tôi chỉ mục mới. Tuy nhiên, tôi không chắc chắn phải làm gì vào thời điểm đó vì một mục khác đã tồn tại ở chỉ mục đó.

Làm thế nào tôi có thể đi về đạt được điều này? Không tìm kiếm một cách tiếp cận jQuery, javascript hoặc một thư viện như lodash.

Đã hỏi ngày 21 tháng 9 năm 2017 lúc 18:21Sep 21, 2017 at 18:21

Hướng dẫn javascript move item up or down in array - javascript di chuyển mục lên hoặc xuống trong mảng

Bạn có thể sử dụng

0 hai lần, đầu tiên để xóa mục bạn muốn di chuyển, sau đó để chèn nó vào vị trí mới

var data = [1,2,3,4,5];

function moveItem(from, to) {
  // remove `from` item and store it
  var f = data.splice(from, 1)[0];
  // insert stored item into position `to`
  data.splice(to, 0, f);
}

moveItem(0, 2);

console.log(data);

Đã trả lời ngày 21 tháng 9 năm 2017 lúc 18:38Sep 21, 2017 at 18:38

Hướng dẫn javascript move item up or down in array - javascript di chuyển mục lên hoặc xuống trong mảng

JamesjamesJames

Huy hiệu vàng 19,9K22 gold badges24 silver badges39 bronze badges

2

Bạn cũng có thể sử dụng cơ chế hoán đổi trường học cũ:

function move(value, positionChange) {
  // On run, move the object in the array up or down respectivly.
  for (var i = 0; i < obj.length; i++) {
    if (obj[i].RuleDetailID == positionChange) {
      var newIndex = value === 'up' ? i - 1 : i + 1;
      if (newIndex >= obj.length || newIndex < 0) return;
      var temp = obj[i];
      obj[i] = obj[newIndex];
      obj[newIndex] = temp;
      document.getElementById('example').innerHTML = renderExample();
    }
  }
}

Đã trả lời ngày 21 tháng 9 năm 2017 lúc 18:52Sep 21, 2017 at 18:52

1

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:

  1. Sử dụng phương thức
    1 để loại bỏ phần tử tại chỉ mục cụ thể khỏi mảng.
  2. Sử dụng phương thức
    1 để chèn phần tử vào chỉ mục mới trong mảng.
  3. Phương thức
    3 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ể.

Copied!

const arr = ['css', 'js', 'ts']; const fromIndex = arr.indexOf('css'); // 👉️ 0 const toIndex = 2; const element = arr.splice(fromIndex, 1)[0]; console.log(element); // ['css'] arr.splice(toIndex, 0, element); console.log(arr); // 👉️ ['js', 'ts', 'css']

Chúng tôi đã thay đổi vị trí của phần tử mảng với giá trị

4 từ Index
5 thành Index
6.

Trước tiên chúng tôi đã sử dụng phương thức mảng.Indexof để lấy chỉ mục của phần tử.

Sau đó, chúng tôi đã sử dụng phương thức mảng.splice, chuyển nó các đối số sau đây:

  1. Bắt đầu chỉ mục - Chỉ mục để bắt đầu thay đổi mảng - the index at which to start changing the array
  2. Xóa đếm - có bao nhiêu phần tử nên bị xóa khỏi mảng - how many elements should be deleted from the array

Chúng tôi chỉ muốn xóa một phần tử duy nhất để chúng tôi đặt đối số đếm xóa thành

7.

Phương thức

3 trả về một mảng chứa các phần tử bị loại bỏ.

Copied!

const arr = ['css', 'js', 'ts']; const splice = arr.splice(0, 1); console.log(splice) // 👉️ ['css']

Vì chúng tôi biết rằng chúng tôi chỉ xóa 1 phần tử khỏi mảng, chúng tôi trực tiếp truy cập phần tử mảng tại Index

5 để nhận giá trị của phần tử chúng tôi sẽ chèn ở vị trí mới.

Bước cuối cùng là gọi lại phương thức

3. Tuy nhiên, lần này chúng tôi sử dụng nó để thêm một phần tử vào mảng ở một chỉ mục cụ thể.

Đối số thứ 3 mà chúng tôi đã chuyển sang phương thức

3 là phần tử để thêm vào mảng.

Chúng tôi đặt đối số chỉ mục bắt đầu thành vị trí mới mà phần tử sẽ được đặt vào.start index argument to the new position the element should be placed in.

Cuối cùng, chúng tôi đặt đối số đếm xóa thành

5 để biểu thị rằng chúng tôi không muốn xóa bất kỳ phần tử nào khỏi mảng.delete count argument to
5 to denote that we don't want to remove any elements from the array.

Trong bài viết này, chúng tôi đã sử dụng phương pháp

3 để:

  • Xóa một phần tử ở một chỉ mục cụ thể khỏi một mảng và nhận được giá trị của nó
  • Thêm một phần tử vào một mảng ở một chỉ mục cụ thể

Cá nhân, tôi muốn có 2 phương pháp tích hợp riêng biệt để đạt được 2 mục tiêu rất khác nhau này. Tuy nhiên, đây là cách để làm điều đó trong JavaScript.

Đọc thêm #

  • Chuyển đổi mảng thành chuỗi phân tách bằng dấu phẩy trong JavaScript
  • Chuyển đổi mảng thành chuỗi mà không có dấu phẩy trong javascript
  • Chuyển đổi mảng thành chuỗi với khoảng trống trong JavaScript
  • Chuyển đổi chuỗi thành mảng số trong javascript
  • Chuyển đổi tất cả các phần tử mảng thành chữ thường trong JavaScript
  • Chuyển đổi tất cả các thành phần mảng thành chữ hoa trong JavaScript
  • Kiểm tra xem nhiều giá trị có tồn tại trong mảng trong JavaScript không
  • Viết hoa chữ cái đầu tiên của mỗi từ trong mảng trong js
  • Chuyển đổi chuỗi phân tách bằng dấu phẩy thành mảng trong JavaScript
  • Chuyển đổi chuỗi phân tách bằng dấu phẩy thành mảng số trong js
  • Thay thế phần tử đầu tiên của một mảng trong JavaScript
  • Xóa 2 phần tử cuối cùng khỏi một mảng trong JavaScript

Làm thế nào để bạn di chuyển vị trí của phần tử trong 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.

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

Sử dụng các phím mũi tên để di chuyển vị trí phần tử trong JavaScript ở đầu ra ở trên, chúng tôi sử dụng các phím mũi tên để di chuyển phần tử lên, xuống, trái và phải.Đầu tiên, chúng tôi sử dụng QuerySelector () để chọn một phần tử có lớp là vòng tròn trong ví dụ này, phần tử đó là a. to Move Element Position in JavaScript In the above output, we use arrow keys to move the element up, down, left, and right. Firstly, we use querySelector() to select an element whose class is circle in this example, that element is a
.

Làm thế nào để bạn di chuyển một phần tử đến mặt trước của mảng?

unSHift () Phương thức unSHift () thêm một hoặc nhiều phần tử vào đầu một mảng và trả về độ dài mới của mảng. The unshift() method adds one or more elements to the beginning of an array and returns the new length of the array.

Có thứ tự các mục trong mảng trong JavaScript có quan trọng không?

Tuy nhiên, hóa ra thứ tự sắp xếp của mảng không quan trọng khi bạn so sánh các đối tượng.Kể từ ARR1.Sắp xếp () và ARR1 trỏ đến cùng một đối tượng trong bộ nhớ, bài kiểm tra bình đẳng đầu tiên trả về đúng.Điều này cũng đúng với so sánh thứ hai là tốt: ARR2.the sort order of the array doesn't matter when you're comparing objects. Since arr1. sort() and arr1 point to the same object in memory, the first equality test returns true . This holds true for the second comparison as well: arr2.