Làm thế nào một đối tượng JavaScript có thể được chuyển đổi thành một mảng?

Bạn nên chọn cách tiếp cận nào tùy thuộc vào việc bạn cần sử dụng chỉ mục của mảng làm khóa đối tượng hay bạn cần sử dụng khóa tùy chỉnh

Chuyển đổi một mảng thành một đối tượng bằng Object. giao phó[]

Sử dụng phương thức Object.assign[] để chuyển đổi một mảng thành một đối tượng, e. g. const obj = Object.assign[{}, arr]

Phương thức Object.assign lấy đối tượng đích và đối tượng nguồn làm tham số, áp dụng các thuộc tính từ nguồn cho đích và trả về kết quả

Chúng tôi đã chuyển 2 đối số sau cho Đối tượng. chỉ định phương pháp

  1. đối tượng đích - đối tượng mà chúng tôi áp dụng các thuộc tính của nguồn
  2. [các] đối tượng nguồn - các đối tượng chứa các thuộc tính mà chúng ta muốn áp dụng

Phương thức trả về một đối tượng trong đó các khóa là các chỉ mục mảng và các giá trị là các phần tử mảng

Chuyển đổi một mảng thành một đối tượng bằng cách sử dụng Array. cho mỗi[]

Để chuyển đổi một mảng thành một đối tượng

  1. Khai báo một biến và khởi tạo nó cho một đối tượng rỗng
  2. Sử dụng phương thức Array.forEach[] để lặp lại mảng
  3. Trên mỗi lần lặp lại, hãy thêm phần tử dưới dạng cặp khóa-giá trị vào đối tượng

Hàm chúng tôi đã chuyển đến Mảng. Phương thức forEach[] được gọi với từng phần tử trong mảng

Phương thức này cũng cho phép chúng ta truy cập vào chỉ mục của lần lặp hiện tại

Cách tiếp cận này thủ công hơn một chút, tuy nhiên, nó cho phép bạn đặt tên cho các khóa của đối tượng mới

Bạn không thể đặt tên cho các khóa của đối tượng nếu bạn sử dụng cách tiếp cận Object.assign[] từ phân nhóm trước

Hàm mà chúng ta đã chuyển cho phương thức Array.forEach[] được gọi với từng phần tử và chỉ mục, vì vậy bạn cũng có thể sử dụng index làm khóa

Chuyển đổi một Mảng thành một Đối tượng bằng cách sử dụng cú pháp Spread [. ]

Sử dụng cú pháp lây lan [. ] để chuyển đổi một mảng thành một đối tượng, e. g. Array.forEach[]0

Cú pháp trải rộng sẽ giải nén các giá trị của mảng thành một đối tượng mới, trong đó

  1. Các chỉ mục của mảng là các khóa của đối tượng
  2. Các phần tử trong mảng là các giá trị của đối tượng

Chúng tôi đã sử dụng cú pháp lây lan [. ] để giải nén mảng thành một đối tượng

Sự lây lan [. ] cú pháp có thể được sử dụng với bất kỳ lần lặp nào, chẳng hạn như một mảng, chuỗi, Array.forEach[]1, v.v.

Tương tự như cách tiếp cận đầu tiên, các chỉ mục của mảng trở thành khóa của đối tượng và các phần tử trở thành giá trị của đối tượng

Chuyển đổi một mảng thành đối tượng bằng Object. fromEntries[]

Để chuyển đổi một mảng các cặp khóa-giá trị thành một đối tượng

  1. Truyền mảng cho phương thức Object.fromEntries[]
  2. Phương thức Object.fromEntries[] chuyển đổi một mảng các cặp khóa-giá trị thành một đối tượng và trả về kết quả

Lưu ý rằng lần này chúng ta có một mảng hai chiều

Các mảng lồng nhau chứa 2 phần tử mỗi phần - một khóa và một giá trị

đối tượng. fromEntries chuyển đổi danh sách các cặp khóa-giá trị thành một đối tượng

Điều này chỉ hoạt động nếu bạn có một mảng hai chiều trong đó mỗi mảng con chứa 2 phần tử - khóa và giá trị

Chuyển đổi một mảng thành một đối tượng bằng cách sử dụng Array. giảm bớt[]

Để chuyển đổi một mảng thành một đối tượng

  1. Sử dụng phương thức Array.forEach[]4 để lặp lại mảng
  2. Trên mỗi lần lặp lại, hãy gán một cặp khóa-giá trị mới cho đối tượng tích lũy

Hàm chúng tôi đã chuyển đến Mảng. phương thức rút gọn được gọi với từng phần tử trong mảng

Chúng tôi đặt một đối tượng trống làm giá trị ban đầu cho biến Array.forEach[]5

Trên mỗi lần lặp lại, chúng tôi gán một cặp khóa-giá trị mới cho đối tượng và trả về giá trị của biến Array.forEach[]5

Cách tiếp cận này cũng cho phép bạn gán tên khóa tùy chỉnh cho đối tượng

Chúng tôi đã sử dụng chuỗi Array.forEach[]7 + chỉ mục, tuy nhiên, bạn có thể điều chỉnh điều này nếu cần

Chuyển đổi một mảng đối tượng thành một đối tượng bằng cách sử dụng Object.fromEntries[]

Để chuyển đổi một mảng các đối tượng thành một đối tượng

  1. Sử dụng phương thức Array.forEach[]9 để lặp lại mảng
  2. Trả về một mảng của một khóa và một giá trị trên mỗi lần lặp
  3. Sử dụng phương thức Object.fromEntries[]0 để chuyển đổi mảng thành một đối tượng

Hàm chúng tôi đã chuyển đến Mảng. phương thức bản đồ được gọi với từng phần tử trong mảng

Trên mỗi lần lặp, chúng tôi trả về một mảng chứa khóa và giá trị

Phương thức Object.fromEntries[]1 trả về một mảng mới chứa các giá trị được trả về từ hàm gọi lại

Bước cuối cùng là chuyển mảng các cặp khóa-giá trị cho phương thức Object.fromEntries[] để chuyển đổi nó thành một đối tượng

Phương thức tĩnh

Array.from["foo"];
// [ "f", "o", "o" ]
0 tạo một thể hiện
Array.from["foo"];
// [ "f", "o", "o" ]
1 mới, được sao chép nông từ một đối tượng có thể lặp lại hoặc giống như mảng

Array.from[arrayLike]

// Arrow function
Array.from[arrayLike, [element] => { /* … */ }]
Array.from[arrayLike, [element, index] => { /* … */ }]

// Mapping function
Array.from[arrayLike, mapFn]
Array.from[arrayLike, mapFn, thisArg]

// Inline mapping function
Array.from[arrayLike, function [element] { /* … */ }]
Array.from[arrayLike, function [element, index] { /* … */ }]
Array.from[arrayLike, function [element] { /* … */ }, thisArg]
Array.from[arrayLike, function [element, index] { /* … */ }, thisArg]

Array.from["foo"];
// [ "f", "o", "o" ]
2

Một đối tượng có thể lặp lại hoặc giống như mảng để chuyển đổi thành một mảng

Array.from["foo"];
// [ "f", "o", "o" ]
3 Tùy chọn

Hàm ánh xạ để gọi mọi phần tử của mảng. Nếu được cung cấp, mọi giá trị được thêm vào mảng trước tiên sẽ được chuyển qua hàm này và thay vào đó, giá trị trả về của

Array.from["foo"];
// [ "f", "o", "o" ]
3 sẽ được thêm vào mảng

Hàm được gọi với các đối số sau

Array.from["foo"];
// [ "f", "o", "o" ]
5

Phần tử hiện tại đang được xử lý trong mảng

Array.from["foo"];
// [ "f", "o", "o" ]
6

Chỉ số của phần tử hiện tại đang được xử lý trong mảng

Array.from["foo"];
// [ "f", "o", "o" ]
7 Tùy chọn

Giá trị được sử dụng là

Array.from["foo"];
// [ "f", "o", "o" ]
8 khi thực thi
Array.from["foo"];
// [ "f", "o", "o" ]
3

Phiên bản

Array.from["foo"];
// [ "f", "o", "o" ]
1 mới

Array.from["foo"];
// [ "f", "o", "o" ]
0 cho phép bạn tạo
Array.from["foo"];
// [ "f", "o", "o" ]
1 từ

  • các đối tượng có thể lặp lại [các đối tượng như
    const set = new Set[["foo", "bar", "baz", "foo"]];
    Array.from[set];
    // [ "foo", "bar", "baz" ]
    
    3 và
    const set = new Set[["foo", "bar", "baz", "foo"]];
    Array.from[set];
    // [ "foo", "bar", "baz" ]
    
    4];
  • đối tượng dạng mảng [đối tượng có thuộc tính
    const set = new Set[["foo", "bar", "baz", "foo"]];
    Array.from[set];
    // [ "foo", "bar", "baz" ]
    
    5 và các phần tử được lập chỉ mục]

Array.from["foo"];
// [ "f", "o", "o" ]
0 không bao giờ tạo một mảng thưa thớt. Nếu đối tượng
Array.from["foo"];
// [ "f", "o", "o" ]
2 thiếu một số thuộc tính chỉ mục, chúng sẽ trở thành
const set = new Set[["foo", "bar", "baz", "foo"]];
Array.from[set];
// [ "foo", "bar", "baz" ]
8 trong mảng mới

Array.from["foo"];
// [ "f", "o", "o" ]
0 có tham số tùy chọn
Array.from["foo"];
// [ "f", "o", "o" ]
3, cho phép bạn thực thi một hàm trên từng phần tử của mảng được tạo, tương tự như
const map = new Map[[
  [1, 2],
  [2, 4],
  [4, 8],
]];
Array.from[map];
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map[[
  ["1", "a"],
  ["2", "b"],
]];
Array.from[mapper.values[]];
// ['a', 'b'];

Array.from[mapper.keys[]];
// ['1', '2'];
1. Nói rõ hơn,
const map = new Map[[
  [1, 2],
  [2, 4],
  [4, 8],
]];
Array.from[map];
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map[[
  ["1", "a"],
  ["2", "b"],
]];
Array.from[mapper.values[]];
// ['a', 'b'];

Array.from[mapper.keys[]];
// ['1', '2'];
2 có cùng kết quả với
const map = new Map[[
  [1, 2],
  [2, 4],
  [4, 8],
]];
Array.from[map];
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map[[
  ["1", "a"],
  ["2", "b"],
]];
Array.from[mapper.values[]];
// ['a', 'b'];

Array.from[mapper.keys[]];
// ['1', '2'];
3, chỉ khác là nó không tạo mảng trung gian, và
Array.from["foo"];
// [ "f", "o", "o" ]
3 chỉ nhận 2 đối số [
Array.from["foo"];
// [ "f", "o", "o" ]
5,
Array.from["foo"];
// [ "f", "o", "o" ]
6] mà không nhận cả mảng, vì mảng vẫn đang được xây dựng

Ghi chú. Hành vi này quan trọng hơn đối với các mảng đã nhập, vì mảng trung gian nhất thiết phải có các giá trị bị cắt bớt để phù hợp với loại thích hợp.

Array.from["foo"];
// [ "f", "o", "o" ]
0 được triển khai để có cùng chữ ký với
const map = new Map[[
  [1, 2],
  [2, 4],
  [4, 8],
]];
Array.from[map];
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map[[
  ["1", "a"],
  ["2", "b"],
]];
Array.from[mapper.values[]];
// ['a', 'b'];

Array.from[mapper.keys[]];
// ['1', '2'];
8

Phương thức

Array.from["foo"];
// [ "f", "o", "o" ]
0 là một phương thức xuất xưởng chung. Ví dụ: nếu một lớp con của
Array.from["foo"];
// [ "f", "o", "o" ]
1 kế thừa phương thức
// Create an array based on a property of DOM Elements
const images = document.querySelectorAll["img"];
const sources = Array.from[images, [image] => image.src];
const insecureSources = sources.filter[[link] => link.startsWith["//"]];
1, thì phương thức
// Create an array based on a property of DOM Elements
const images = document.querySelectorAll["img"];
const sources = Array.from[images, [image] => image.src];
const insecureSources = sources.filter[[link] => link.startsWith["//"]];
1 được kế thừa sẽ trả về các thể hiện mới của lớp con thay vì các thể hiện của lớp con
Array.from["foo"];
// [ "f", "o", "o" ]
1. Trên thực tế, giá trị
Array.from["foo"];
// [ "f", "o", "o" ]
8 có thể là bất kỳ hàm tạo nào chấp nhận một đối số duy nhất biểu thị độ dài của mảng mới. Khi một iterable được truyền dưới dạng
Array.from["foo"];
// [ "f", "o", "o" ]
2, hàm tạo được gọi mà không có đối số; .
const set = new Set[["foo", "bar", "baz", "foo"]];
Array.from[set];
// [ "foo", "bar", "baz" ]
5 cuối cùng sẽ được đặt lại khi quá trình lặp kết thúc. Nếu giá trị
Array.from["foo"];
// [ "f", "o", "o" ]
8 không phải là hàm tạo, thì hàm tạo
Array.from["foo"];
// [ "f", "o", "o" ]
1 đơn giản được sử dụng thay thế

Array.from["foo"];
// [ "f", "o", "o" ]

const set = new Set[["foo", "bar", "baz", "foo"]];
Array.from[set];
// [ "foo", "bar", "baz" ]

const map = new Map[[
  [1, 2],
  [2, 4],
  [4, 8],
]];
Array.from[map];
// [[1, 2], [2, 4], [4, 8]]

const mapper = new Map[[
  ["1", "a"],
  ["2", "b"],
]];
Array.from[mapper.values[]];
// ['a', 'b'];

Array.from[mapper.keys[]];
// ['1', '2'];

// Create an array based on a property of DOM Elements
const images = document.querySelectorAll["img"];
const sources = Array.from[images, [image] => image.src];
const insecureSources = sources.filter[[link] => link.startsWith["//"]];

function f[] {
  return Array.from[arguments];
}

f[1, 2, 3];

// [ 1, 2, 3 ]

// Using an arrow function as the map function to
// manipulate the elements
Array.from[[1, 2, 3], [x] => x + x];
// [2, 4, 6]

// Generate a sequence of numbers
// Since the array is initialized with `undefined` on each position,
// the value of `v` below will be `undefined`
Array.from[{ length: 5 }, [v, i] => i];
// [0, 1, 2, 3, 4]

// Sequence generator function [commonly referred to as "range", e.g. Clojure, PHP, etc.]
const range = [start, stop, step] =>
  Array.from[{ length: [stop - start] / step + 1 }, [_, i] => start + i * step];

// Generate numbers range 0..4
range[0, 4, 1];
// [0, 1, 2, 3, 4]

// Generate numbers range 1..10 with step of 2
range[1, 10, 2];
// [1, 3, 5, 7, 9]

// Generate the alphabet using Array.from making use of it being ordered as a sequence
range["A".charCodeAt[0], "Z".charCodeAt[0], 1].map[[x] =>
  String.fromCharCode[x],
];
// ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]

Phương thức

// Create an array based on a property of DOM Elements
const images = document.querySelectorAll["img"];
const sources = Array.from[images, [image] => image.src];
const insecureSources = sources.filter[[link] => link.startsWith["//"]];
1 có thể được gọi trên bất kỳ hàm xây dựng nào chấp nhận một đối số duy nhất biểu thị độ dài của mảng mới

Làm cách nào để chuyển đổi thuộc tính đối tượng thành mảng trong JavaScript?

Đối tượng JavaScript Chuyển đổi giá trị của đối tượng thành mảng . mảng var = Đối tượng. phím [obj]. map[function[key] { return obj[key]; }];

Một đối tượng JavaScript có thể là một mảng không?

Các phần tử mảng có thể là đối tượng . Mảng là loại đối tượng đặc biệt. Do đó, bạn có thể có các biến thuộc các loại khác nhau trong cùng một Mảng.

Chủ Đề