Tôi có mảng chuỗi này:strings :
let myArray : ["AA","BB" , "CC" ...]Tôi muốn chuyển đổi nó thành một mảng các đối tượng:array of objects:
myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...]Tôi đã trie với "cho phép":"let for":
for (let obj of ListObj) { let resObj = {}; resObj ['value'] = obj ; equipment = resObj ; }Và với bản đồ:map :
ListObj.map(obj => { 'value' = obj })Đề xuất?
Chuyển đổi một mảng thành đối tượng bằng JavaScript #
Sử dụng phương thức Object.assign() để chuyển đổi một mảng thành một đối tượng, ví dụ: myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 0. Phương thức myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 1 lấy các đối tượng mục tiêu và nguồn làm tham số, áp dụng các thuộc tính từ các nguồn cho mục tiêu và trả về kết quả.
Copied!
const arr = ['zero', 'one', 'two']; const obj1 = Object.assign({}, arr); console.log(obj1); // 👉️ {0: 'zero', 1: 'one', 2: 'two'}Chúng tôi đã chuyển 2 tham số sau đây cho phương thức đối tượng.Assign:
- Đố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
- đối tượng nguồn - đối tượng có chứa các thuộc tính chúng tôi 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 đối tượng bằng cách sử dụng foreach () #
Để chuyển đổi một mảng thành một đối tượng:
- Khai báo một biến và đặt nó thành một đối tượng trống.
- Sử dụng phương thức myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 2 để lặp qua mảng.
- Trên mỗi lần lặp, thêm phần tử làm cặp khóa/giá trị vào đối tượng.
Copied!
const arr = ['zero', 'one', 'two']; const obj3 = {}; arr.forEach((element, index) => { obj3['key' + index] = element; }); // 👇️️ {'key0': 'zero', 'key1': 'one', 'key2': 'two'} console.log(obj3);Hàm chúng tôi đã chuyển đến phương thức mảng. LỰA CHỌN được gọi với từng phần tử trong mảng.
Phương pháp này cũng cho phép chúng tôi truy cập vào chỉ mục của phép lặp hiện tại.
Cách tiếp cận này là một hướng dẫn 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.
Chuyển đổi một mảng thành đối tượng bằng cách sử dụng spread #
Sử dụng cú pháp lan truyền (...) để chuyển đổi một mảng thành một đối tượng, ví dụ: myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 3. Cú pháp lan truyền sẽ giải nén các giá trị của mảng vào một đối tượng mới, trong đó các chỉ mục của mảng là các phím của đối tượng và các phần tử trong mảng - các giá trị của đối tượng.
Copied!
const arr = ['zero', 'one', 'two']; const obj2 = {...arr}; console.log(obj2); // 👉️ {0: 'zero', 1: 'one', 2: 'two'}Chúng tôi đã sử dụng cú pháp lan truyền (...) để giải nén các phần tử mảng vào một đối tượng.
Cú pháp (...) có thể được sử dụng với bất kỳ sự lặp lại nào, chẳng hạn như một mảng, chuỗi, myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 4, 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 các phím 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 cách sử dụng giảm #
Để chuyển đổi một mảng thành một đối tượng, hãy sử dụng phương thức myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 5 để lặp qua mảng, chuyển nó một đối tượng làm giá trị ban đầu. Trên mỗi lần lặp, gán một cặp giá trị khóa mới cho đối tượng tích lũy và trả về kết quả.
Copied!
const arr = ['zero', 'one', 'two']; const obj4 = arr.reduce((accumulator, value, index) => { return {...accumulator, [key + index]: value}; }, {}); // 👇️️ {'key0': 'zero', 'key1': 'one', 'key2': 'two'} console.log(obj4);Hàm chúng tôi đã chuyển đến phương thức mảng.Reduce được gọi với mỗi 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 myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 6.
Trên mỗi lần lặp, chúng tôi gán một cặp giá trị khóa mới cho đối tượng và trả về giá trị cho biến myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 6.
Cách tiếp cận này cũng cho phép bạn gán bất kỳ tên khóa nào mà trường hợp sử dụng của bạn yêu cầu. Chúng tôi đã sử dụng chuỗi myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 8 + chỉ mục, tuy nhiên bạn có thể điều chỉnh điều này khi cần thiết.
Chuyển đổi một mảng thành đối tượng bằng đối tượng.fromentries #
Để chuyển đổi một mảng các cặp giá trị khóa thành một đối tượng, hãy chuyển mảng đến phương thức myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 9, ví dụ: for (let obj of ListObj) { let resObj = {}; resObj ['value'] = obj ; equipment = resObj ; } 0. Phương thức for (let obj of ListObj) { let resObj = {}; resObj ['value'] = obj ; equipment = resObj ; } 1 chuyển đổi một mảng các cặp giá trị khóa thành một đối tượng và trả về kết quả.
Copied!
const arr2 = [ ['name', 'Tom'], ['age', 30], ]; const obj5 = Object.fromEntries(arr2); console.log(obj5); // 👉️ {name: 'Tom', age: 30}Lưu ý rằng chúng tôi có một mảng hai chiều lần này. Các mảng lồng nhau chứa 2 phần tử mỗi - một khóa và một giá trị.
Phương thức đối tượng
Sự kết luận #
Có nhiều cách để chuyển đổi một mảng thành một đối tượng:
- Sử dụng Object.assign() - for (let obj of ListObj) { let resObj = {}; resObj ['value'] = obj ; equipment = resObj ; } 4.
- Sử dụng cú pháp lan truyền - for (let obj of ListObj) { let resObj = {}; resObj ['value'] = obj ; equipment = resObj ; } 5.
- Sử dụng phương pháp myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 5.
- Sử dụng phương pháp myArray = [{"id":1 , "value": "AAA"},{"id":2 , "value": "BBB"},{"id":3 , "value": "CCC"}...] 9.
Đọc thêm #
- Chuyển đổi các giá trị của một mảng thành các phím đối tượng trong JavaScript
- Chuyển đổi tất cả các giá trị thành một bộ thành chữ thường trong JavaScript