Yêu cầu Feb 1st, 2021 4:48 a.m. 335 0 3
  • 335 0 3
0

Kiểm tra 2 mảng

Chia sẻ
  • 335 0 3

Array 1: [ { title: 'Color', value: 'Orange' }, { title: 'Size', value: 'Small' } ]

Array 2: [ { title: 'Size', value: 'Small' }, { title: 'Color', value: 'Orange' } ]

Mình có 2 array với thứ tự Object không giống nhau, có cách nào để kiểm tra 2 array này bằng nhau không ạ?

Avatar Nguyen Quang Phu @quangphunguyen
Feb 1st, 2021 6:10 a.m.

cái này trong javascript thuần hình như không có hàm có sẵn, bạn phải tự viết chay rồi

Feb 1st, 2021 6:25 a.m.

@quangphunguyen Nếu React thì có không ạ?

Avatar Nguyen Quang Phu @quangphunguyen
Feb 1st, 2021 6:43 a.m.

@thangly98 nếu dùng react bạn có thể cài thêm thư viện như lodash sẽ có hàm hỗ trợ như ở câu trả lời dưới nhé.

3 CÂU TRẢ LỜI


Đã trả lời Feb 25th, 2021 8:28 a.m.
Đã được chấp nhận
+1

Bạn tham khảo thử nhes!!!

compareArray = (arr1, arr2) =>{
    if(arr2.length !== arr1.length)
        return false;
    for(let i = 0; i < arr1.length; i++){
        for(let j = 0; j<arr2.length; j++){
            if(arr1[i].title === arr2[j].title && arr1[i].value === arr2[j].value){
                arr1.splice(i,1);
                i--;
                arr2.splice(j,1);
                j--;
            }
        }
    }
    if(arr1.length === 0 && arr2.length === 0)
        return true;
    return false;
}
Chia sẻ
Feb 26th, 2021 3:41 a.m.

Có vẻ đúng rồi bạn, mình cảm ơn nhé ^^

Đã trả lời Feb 4th, 2021 4:51 a.m.
0

a.every((obj, i) => { return obj.title === b[i].title && obj.value === b[i].value; })

thử dùng hàm này đi bạn

Chia sẻ
Đã trả lời Feb 2nd, 2021 6:18 p.m.
-2

Hash chúng nó ra string rồi compare 2 array với nhau.

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí