Tôi có một mảng:
[ [ 'cardType', 'iDEBIT' ], [ 'txnAmount', '17.64' ], [ 'txnId', '20181' ], [ 'txnType', 'Purchase' ], [ 'txnDate', '2015/08/13 21:50:04' ], [ 'respCode', '0' ], [ 'isoCode', '0' ], [ 'authCode', '' ], [ 'acquirerInvoice', '0' ], [ 'message', '' ], [ 'isComplete', 'true' ], [ 'isTimeout', 'false' ] ]Nhưng tôi không thể truy cập dữ liệu thông qua khóa của một mảng, ví dụ: arr['txnId'] không trả lại 20181. Làm thế nào tôi có thể chuyển đổi mảng các bộ dữ liệu trên thành một đối tượng, để tôi có thể dễ dàng truy cập dữ liệu theo khóa.
Nhà điều hành lan truyền có hoạt động trên các đối tượng không?
Có thể sử dụng cú pháp lan truyền khi tất cả các phần tử từ một đối tượng hoặc mảng cần được đưa vào một mảng hoặc đối tượng mới, hoặc nên được áp dụng từng người một trong danh sách đối số của Call.
- Các phím đối tượng trong JavaScript là gì?
- Object.keys () Trả về một mảng có các phần tử là các chuỗi tương ứng với các thuộc tính được tìm thấy trực tiếp trên đối tượng. Thứ tự của các thuộc tính giống như được đưa ra bằng cách lặp qua các thuộc tính của đối tượng theo cách thủ công.
- Chuyển đổi các giá trị của một mảng thành các phím đối tượng #
Copied!
const arr = ['name', 'age', 'country']; const obj = arr.reduce((accumulator, value) => { return {...accumulator, [value]: ''}; }, {}); console.log(obj); // 👉️ {name: '', age: '', country: ''}Để chuyển đổi các giá trị của một mảng thành các phím đối tượng:
Sử dụng phương thức reduce() để lặp qua mảng.
Trên mỗi lần lặp, gán phần tử mảng làm khóa trong đối tượng tích lũy.
Phương thức
Copied!
const arr = ['name', 'age', 'country']; const obj = arr.reduce((accumulator, value) => { return {...accumulator, [value]: ''}; }, {}); console.log(obj); // 👉️ {name: '', age: '', country: ''} 0 sẽ xây dựng một đối tượng từ các giá trị của mảng.Nếu bạn không thích sử dụng phương thức Copied!
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 đã cung cấp một đối tượng trống làm giá trị ban đầu cho biến
Copied!
const arr = ['name', 'age', 'country']; const obj = arr.reduce((accumulator, value) => { return {...accumulator, [value]: ''}; }, {}); console.log(obj); // 👉️ {name: '', age: '', country: ''} 2.Có thể sử dụng cú pháp lan truyền khi tất cả các phần tử từ một đối tượng hoặc mảng cần được đưa vào một mảng hoặc đối tượng mới, hoặc nên được áp dụng từng người một trong danh sách đối số của Call.
- Các phím đối tượng trong JavaScript là gì?
- Object.keys () Trả về một mảng có các phần tử là các chuỗi tương ứng với các thuộc tính được tìm thấy trực tiếp trên đối tượng. Thứ tự của các thuộc tính giống như được đưa ra bằng cách lặp qua các thuộc tính của đối tượng theo cách thủ công.
- Chuyển đổi các giá trị của một mảng thành các phím đối tượng #
Copied!
const arr = ['name', 'age', 'country']; const obj = {}; arr.forEach(element => { obj[element] = ''; }); console.log(obj); // 👉️ {name: '', age: '', country: ''}Để chuyển đổi các giá trị của một mảng thành các phím đối tượng:
Sử dụng phương thức reduce() để lặp qua mảng.
Trên mỗi lần lặp, gán phần tử mảng làm khóa trong đối tượng tích lũy.
Phương thức Copied!
Nếu bạn không thích sử dụng phương thức
Copied!
const arr = ['name', 'age', 'country']; const obj = arr.reduce((accumulator, value) => { return {...accumulator, [value]: ''}; }, {}); console.log(obj); // 👉️ {name: '', age: '', country: ''} 0, hãy cuộn xuống đoạn mã tiếp theo.- 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 đã cung cấp một đối tượng trống làm giá trị ban đầu cho biến
Copied!
const arr = ['name', 'age', 'country']; const obj = arr.reduce((accumulator, value) => { return {...accumulator, [value]: ''}; }, {}); console.log(obj); // 👉️ {name: '', age: '', country: ''} 2.
Hình ảnh từ Unraw.co
Ban đầu được đăng trên afewminutesofcode.com
Để chuyển đổi một mảng thành một đối tượng, chúng tôi sẽ tạo một hàm và cung cấp cho nó 2 thuộc tính, một mảng và khóa.
const convertArrayToObject = (array, key) => {};
Nhập chế độ FullScreenen EXIT Mode FullScreen
Sau đó, chúng tôi sẽ giảm mảng và tạo một thuộc tính duy nhất cho mỗi mục dựa trên khóa chúng tôi đã chuyển vào.
Chúng ta cũng cần nhớ đặt giá trị ban đầu và cũng vượt qua giá trị hiện tại (... OBJ ở bên dưới).
const convertArrayToObject = (array, key) => { const initialValue = {}; return array.reduce((obj, item) => { return { ...obj, [item[key]]: item, }; }, initialValue); };
Nhập chế độ FullScreenen EXIT Mode FullScreen
Sau đó, chúng tôi sẽ giảm mảng và tạo một thuộc tính duy nhất cho mỗi mục dựa trên khóa chúng tôi đã chuyển vào.
console.log( convertArrayToObject( [ { id: 111, name: 'John', age: 29 }, { id: 112, name: 'Sarah', age: 25 }, { id: 122, name: 'Kate', age: 22 }, { id: 123, name: 'Tom', age: 21 }, { id: 125, name: 'Emma', age: 24 }, ], 'id', ), );
Nhập chế độ FullScreenen EXIT Mode FullScreen
Sau đó, chúng tôi sẽ giảm mảng và tạo một thuộc tính duy nhất cho mỗi mục dựa trên khóa chúng tôi đã chuyển vào.
{ 111:{ id: 111, name: 'John', age: 29 }, 112:{ id: 112, name: 'Sarah', age: 25 }, 122:{ id: 122, name: 'Kate', age: 22 }, 123:{ id: 123, name: 'Tom', age: 21 }, 125:{ id: 125, name: 'Emma', age: 24 } }
Nhập chế độ FullScreenen EXIT Mode FullScreen
Sau đó, chúng tôi sẽ giảm mảng và tạo một thuộc tính duy nhất cho mỗi mục dựa trên khóa chúng tôi đã chuyển vào.
Chúng ta cũng cần nhớ đặt giá trị ban đầu và cũng vượt qua giá trị hiện tại (... OBJ ở bên dưới).
Vì vậy, bây giờ nếu chúng tôi đăng xuất chức năng của mình (chuyển trong mảng và khóa của chúng tôi là một mã định danh duy nhất trong trường hợp này, thuộc tính ID), chúng tôi sẽ thấy mảng của chúng tôi bây giờ là một đối tượng.
Facebook
afewminutesofcode.com
Twitter
Pinterest