Cách lấy giá trị khóa cụ thể từ đối tượng trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một đối tượng như vậy làm đối số đầu tiên và một cặp giá trị khóa làm đối số thứ hai

Cặp giá trị khóa về cơ bản không là gì ngoài một đối tượng như thế này -

const pair = {"productId": 456};

Sau đó, chức năng sẽ tìm kiếm đối tượng cho khóa có "productId" được chỉ định và trả lại giá trị đó

Thí dụ

Mã cho điều này sẽ là -

const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];

đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

LAPTOP

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ó tên là "

const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
1" chẳng hạn thành một mảng mới, bạn có thể thực hiện theo các cách sau

Sử dụng
const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
2

Bạn có thể sử dụng phương thức

const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
2 để tạo một mảng mới chỉ bao gồm các giá trị của khóa cụ thể. Sử dụng
const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
2 sẽ gọi hàm 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 hàm mũi tên và giải nén thuộc tính đối tượng có liên quan được chuyển đến hàm gọi lại được cung cấp, chẳng hạn như như vậy

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

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

Sử dụng vòng lặp
const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
5

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 mảng bằng cách sử dụng vòng lặp

const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
5 chẳng hạn 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 ý việc sử dụng phương pháp

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

console.log[names]; // ['John', 'Wayne', 'David']
0 trong đoạn mã trên;

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. Hãy thể hiện tình yêu và sự ủng hộ của bạn bằng cách chia sẻ bài đăng này

Trong bài viết này, hãy cho chúng tôi hiểu “khóa” và “giá trị” trong một mảng là gì & cũng xem xét các phương pháp khác nhau mà chúng tôi có thể lấy các cặp khóa-giá trị này

Mục lục

  • Khóa và giá trị trong một mảng là gì?
  • Các phương pháp khác nhau để có được các cặp khóa-giá trị
  • Hỗ trợ trình duyệt

Khóa và giá trị trong một mảng là gì?

Các khóa là các chỉ mục và các giá trị là các phần tử của một mảng kết hợp. Các mảng kết hợp về cơ bản là các đối tượng trong JavaScript nơi các chỉ mục được thay thế bằng các khóa do người dùng xác định. Chúng không có thuộc tính độ dài như một mảng bình thường và không thể duyệt qua bằng cách sử dụng vòng lặp for thông thường

Đây là một ví dụ về một mảng kết hợp

var arr = { "one": 1, "two": 2, "three": 3 }; 

Không giống như các mảng đơn giản, chúng tôi sử dụng dấu ngoặc nhọn thay vì dấu ngoặc vuông. Nội dung hoặc giá trị của mảng kết hợp được truy cập bằng các phím

Trong mảng trên, một, hai & ba là khóa và 1, 2 & 3 là giá trị. Chúng có thể được lấy riêng lẻ bằng cách sử dụng các phương thức keys[] & values[] như hình bên dưới

________số 8

Các phương pháp khác nhau để có được các cặp khóa-giá trị

Bây giờ chúng ta đã biết cách lấy các khóa và giá trị trong một mảng, chúng ta hãy xem xét các phương thức khác nhau để lấy các cặp khóa-giá trị

Trước tiên chúng ta hãy lưu trữ các khóa và giá trị được trích xuất trước đó trong các mảng riêng biệt

var keys = ["one", "two", "three"];
var values = [1, 2, 3];

Phương pháp 1. Sử dụng một đối tượng để lưu trữ các cặp khóa => giá trị

Trong phương thức này, chúng ta lưu trữ các phần tử từ mảng “keys” & các giá trị tương ứng từ mảng “values” bằng cách sử dụng một mảng kết hợp "obj"

const obj = {
   "LAPTOP": [{
      "productId": "123"
   }],
   "DESKTOP": [{
      "productId": "456"
   }],
   "MOUSE": [{
      "productId": "789"
   }, {
      "productId": "012"
   }],
   "KEY-BOARD": [{
      "productId": "345"
   }]
};
const searchByPair = [obj = {}, pair = {}] => {
   const toSearch = Object.values[pair][0];
   let required = undefined;
   Object.keys[obj].forEach[[key] => {
      if[obj[key].find[[pid] => pid.productId === toSearch]]{
         required = key;
      }
   }];
   return required;
};
console.log[searchByPair[obj, {
   'productId': '123'
}]];
0

Phương pháp 2. Sử dụng phương thức map[]

Bản đồ là một tập hợp các phần tử trong đó mỗi phần tử được lưu trữ dưới dạng một cặp khóa, giá trị. Các đối tượng của loại bản đồ có thể chứa cả đối tượng và giá trị nguyên thủy dưới dạng khóa hoặc giá trị. Khi duyệt qua đối tượng bản đồ, nó trả về cặp khóa, giá trị theo thứ tự như đã chèn

Làm cách nào để lấy một khóa từ đối tượng trong JavaScript?

Sử dụng đối tượng. keys[objectName] để có quyền truy cập vào tất cả các khóa của đối tượng. Bây giờ, chúng ta có thể sử dụng lập chỉ mục như Object. keys[objectName][0] để lấy khóa của phần tử đầu tiên của đối tượng.

Làm cách nào để trả về giá trị của khóa trong JavaScript?

Bạn có thể thực hiện việc này thông qua ký hiệu dấu chấm hoặc dấu ngoặc , như thế này. var myVariable = obj. số ba; . var myVariable = obj["ba"];

Chủ Đề