VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile
Loại bỏ các phần tử trùng nhau trong mảng lồng - Javacript - PHP - Các ngôn ngữ khác tương tự

Loại bỏ các phần tử trùng nhau trong mảng lồng - Javacript - PHP - Các ngôn ngữ khác tương tự

Loại bỏ các phần tử trùng nhau trong mảng lồng - Javacript - PHP - Các ngôn ngữ khác tương tự

Giả sử ta có 1 mảng như sau :

this.state.list_right = [
    {
        "title": "b",
        "key": "b",
        "prefix": "",
        "edit": "24",
        "type": "string"
    },
    {
        "title": "c",
        "key": "c",
        "prefix": "",
        "edit": "4",
        "type": "string"
    },
    {
        "title": "b",
        "key": "b",
        "prefix": "",
        "edit": "24",
        "type": "string"
    },
    {
        "title": "c",
        "key": "c",
        "prefix": "",
        "edit": "4",
        "type": "string"
    },
    {
        "title": "b",
        "key": "b",
        "prefix": "",
        "edit": "24",
        "type": "string"
    },
    {
        "title": "c",
        "key": "c",
        "prefix": "",
        "edit": "4",
        "type": "string"
    }
]

Nhiệm vụ ta cần loại bỏ các obj trùng lặp trong mảng này.

Bước 1 :  ta khai báo 1 hàm trung gian để xử lý tác vụ này như sau 

    isExist = (arr, x) => {
        for (let i = 0; i < arr.length; i++) {
          if (arr[i].key === x.key) return true;
        }
        return false;
      };

Bước 2 : Trong hàm xử lý logic cần loại bỏ trùng lặp ta gọi hàm trung gian này như sau, và đồng thời gán các phần tử không trùng lặp ra 1 mảng mới

const obj = {
                                    title: arrayKeyMetadata[keyMeta],
                                    key: arrayKeyMetadata[keyMeta],
                                    prefix: '',
                                    edit: Object.values(metadata)[keyMeta],
                                    type: 'string',
                                }
                                if (!this.isExist(this.state.list_right, obj)) this.state.list_right.push(obj);

Chúc bạn thành công !