Computer >> Máy Tính >  >> Lập trình >> Javascript

Loại bỏ các bản sao và ánh xạ một mảng trong JavaScript


Giả sử, chúng ta có một mảng các đối tượng như thế này -

const arr = [
   {id:123, value:"value1", name:"Name1"},
   {id:124, value:"value2", name:"Name1"},
   {id:125, value:"value3", name:"Name2"},
   {id:126, value:"value4", name:"Name2"}
];

Lưu ý rằng một số thuộc tính "name" trong các đối tượng trong mảng là trùng lặp.

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng các đối tượng như vậy. Sau đó, hàm sẽ tạo một mảng chuỗi mới chỉ chứa giá trị thuộc tính "name" duy nhất từ ​​mảng.

Do đó, đầu ra cho đầu vào ở trên sẽ giống như thế này -

const output = ["Name1", "Name2"];

Ví dụ

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

const arr = [
   {id:123, value:"value1", name:"Name1"},
   {id:124, value:"value2", name:"Name1"},
   {id:125, value:"value3", name:"Name2"},
   {id:126, value:"value4", name:"Name2"}
];
const pickNames = (arr = []) =>{
   const res = [];
   for (let i = arr.length; i−−;){
      if (res.indexOf(arr[i].name) < 0) {
         res.push(arr[i].name);
      };
   }
   return res;
};
console.log(pickNames(arr));

Đầu ra

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

[ 'Name2', 'Name1' ]