Hướng dẫn how to get specific key value from array of objects in javascript - cách lấy giá trị khóa cụ thể từ mảng đối tượng trong javascript

Tôi đang chạy một ứng dụng Express.js có một vài API cung cấp dữ liệu cho các hộp thả xuống. Dữ liệu được trả về ở dạng:

  [
    {
        key: 'blah',
        value: 'Blah Blah'
    },
    {
        key: 'foo',
        value: 'Foos'
    },
    {
        key: 'bar',
        value: 'Bars'
    },
    {
        key: 'baz',
        value: 'Bazingo'
    }
];

trong đó khóa là khóa tùy chọn của tôi và giá trị là văn bản hiển thị. Cấu trúc của mảng này là cố định và tôi biết thực tế là tôi sẽ luôn có khóa và giá trị như các trường trong mỗi đối tượng trong mảng.

Khi tôi cố gắng xác thực biểu mẫu được gửi [xác thực phía máy chủ bổ sung], tôi muốn tham chiếu chéo giá trị được cung cấp cho một trường so với tất cả các giá trị cho "khóa" trong mảng [blah, foo, bar, baz]. Cho rằng đây sẽ là một tuyến đường được sử dụng thường xuyên, tôi muốn tránh lặp đi lặp lại trên mảng để tìm các giá trị được phép, mỗi lần. Có một cách đơn giản hơn để làm điều này? Nói cách khác, tôi biết tôi có thể sử dụng:

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }

Nhưng tôi muốn tránh điều này cho vòng lặp, nếu có thể.

P.S: Đây dường như là một câu hỏi cơ bản và câu trả lời tôi tìm thấy trực tuyến không trả lời chính xác câu hỏi của tôi. Vì vậy, xin lỗi nếu điều này đã được hỏi và trả lời.

Đọc thêm #

Cách làm phẳng một mảng bằng JavaScript

  • 01 tháng 6 năm 2021
  • 2 phút đọc

Giả sử bạn có mảng đối tượng sau:

const users = [
    { id: 0, name: 'John' },
    { id: 1, name: 'Wayne' },
    { id: 2, name: 'David' },
];

Từ mảng đối tượng này, nếu bạn muốn trích xuất các giá trị của tất cả các thuộc tính đối tượng được gọi là "name", ví dụ như một mảng mới, bạn có thể làm như vậy theo các cách sau:

Sử dụng Array.prototype.map[]

Bạn có thể sử dụng phương thức Array.prototype.map[] để tạo một mảng mới chỉ bao gồm các giá trị khóa cụ thể. Sử dụng Array.prototype.map[] sẽ gọi chức năng gọi lại được cung cấp cho từng phần tử của mảng và thêm các giá trị được trả về vào mảng kết quả mới. Ví dụ:

// ES5+
const names = users.map[function [user] {
    return user.name;
}];

console.log[names]; // ['John', 'Wayne', 'David']

Trong ES6+, bạn có thể rút ngắn cú pháp này bằng cách sử dụng chức năng mũi tên và giải nén thuộc tính đối tượng có liên quan được chuyển đến chức năng gọi lại được cung cấp, ví dụ, như vậy:

// ES6+
const names = users.map[[{ name }] => name];

console.log[names]; // ['John', 'Wayne', 'David']

Sử dụng vòng lặp
 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
2

Nếu bạn không thể hỗ trợ ES5 tối thiểu, thì bạn có thể chỉ cần lặp lại trên mảng bằng cách sử dụng vòng lặp

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
2 và trích xuất các giá trị đối tượng vào một mảng mới theo cách sau:

const names = [];

for [let i = 0; i < users.length; i++] {
    if [!users[i].hasOwnProperty['name']] {
        continue;
    }

    names.push[users[i].name];
}

console.log[names]; // ['John', 'Wayne', 'David']

Xin lưu ý rằng việc sử dụng phương thức

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
4 trong mã ở trên; Nó được sử dụng để các thuộc tính di truyền của đối tượng có thể được bỏ qua và chỉ xem xét các thuộc tính của riêng đối tượng.

Hy vọng bạn tìm thấy bài viết này hữu ích. Nó đã được xuất bản vào ngày 01 tháng 6 năm 2021. Vui lòng thể hiện tình yêu và sự hỗ trợ của bạn bằng cách chia sẻ bài đăng này.

  • Phát triển web
  • Frontend
  • JavaScript
  • Phụ trợ
  • Node.js

Chuyển đổi các giá trị của một mảng thành các phím đối tượng #

Để chuyển đổi các giá trị của một mảng thành các phím đối tượng:

  1. Sử dụng phương thức
     permittedValues = [];
     for [i = 0; i < array.length; i++]{
        permittedValues[i] = array[i]["key"];
     }
    
    5 để lặp qua mảng.
  2. 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.
  3. Phương thức
     permittedValues = [];
     for [i = 0; i < array.length; i++]{
        permittedValues[i] = array[i]["key"];
     }
    
    6 sẽ xây dựng một đối tượng từ các giá trị của mảng.

Copied!

const arr = ['name', 'age', 'country']; const obj = arr.reduce[[accumulator, value] => { return {...accumulator, [value]: ''}; }, {}]; console.log[obj]; // 👉️ {name: '', age: '', country: ''}

Nếu bạn không thích sử dụng phương thức

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
6, 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

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
8.

Trên mỗi lần lặp, chúng tôi gán giá trị mảng làm khóa trong đối tượng và trả về giá trị mới của biến

 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
8.

Chúng tôi đã khởi tạo từng khóa vào một chuỗi trống, tuy nhiên bạn có thể gán bất kỳ giá trị nào phù hợp với trường hợp sử dụng của bạn.

Đối tượng sẽ chứa tất cả các phần tử của mảng làm khóa sau lần lặp cuối cùng.

Một cách tiếp cận khác là sử dụng phương pháp mảng.

Để chuyển đổi các giá trị của một mảng thành các phím đối tượng:

  1. Sử dụng phương thức
     permittedValues = [];
     for [i = 0; i < array.length; i++]{
        permittedValues[i] = array[i]["key"];
     }
    
    5 để lặp qua mảng.
  2. Sử dụng phương thức
    const users = [
        { id: 0, name: 'John' },
        { id: 1, name: 'Wayne' },
        { id: 2, name: 'David' },
    ];
    
    0 để lặp qua mảng.
  3. Trên mỗi lần lặp, gán phần tử của mảng làm khóa trong đối tượng.

Copied!

const arr = ['name', 'age', 'country']; const obj = {}; arr.forEach[element => { obj[element] = ''; }]; console.log[obj]; // 👉️ {name: '', age: '', country: ''}

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

const users = [
    { id: 0, name: 'John' },
    { id: 1, name: 'Wayne' },
    { id: 2, name: 'David' },
];
0 được gọi với mỗi phần tử trong mảng.

Trên mỗi lần lặp, chúng tôi gán phần tử làm khóa trong đối tượng.

Đối tượng cuối cùng chứa tất cả các yếu tố của mảng làm khóa.

Cách tiếp cận mà bạn chọn là một vấn đề sở thích cá nhân. Sử dụng

const users = [
    { id: 0, name: 'John' },
    { id: 1, name: 'Wayne' },
    { id: 2, name: 'David' },
];
2 có thể dễ đọc hơn và trực quan hơn nếu bạn không quen với phương pháp
 permittedValues = [];
 for [i = 0; i < array.length; i++]{
    permittedValues[i] = array[i]["key"];
 }
6.

Đọc thêm #

  • Cách làm phẳng một mảng bằng JavaScript
  • Chuyển đổi một mảng thành một đối tượng bằng JavaScript

Bạn có thể bật một yếu tố cụ thể từ mảng trong JavaScript không?

Hàm pop []: Phương thức này được sử dụng để loại bỏ các phần tử từ cuối một mảng.Hàm shift []: Phương thức này được sử dụng để loại bỏ các phần tử từ đầu một mảng.Hàm splice []: Phương pháp này được sử dụng để loại bỏ các phần tử khỏi chỉ số cụ thể của một mảng.: This method is used to remove elements from the end of an array. shift[] function: This method is used to remove elements from the start of an array. splice[] function: This method is used to remove elements from the specific index of an array.

Làm thế nào bạn sẽ có được cặp giá trị khóa từ đối tượng?

Sử dụng đối tượng.Phương thức khóa [] để truy xuất tất cả các tên khóa từ một đối tượng.Chúng ta có thể sử dụng phương pháp này trên đối tượng Runner trên.Sự vật...
Sử dụng các đối tượng để lưu trữ dữ liệu làm thuộc tính [cặp giá trị khóa] ..
Tên chính phải là chuỗi, ký hiệu hoặc số ..
Giá trị có thể là bất kỳ loại nào ..

Bài Viết Liên Quan

Chủ Đề