Chứng nhận JavaScript của Freecodecamp chứa đầy hàng trăm thách thức tương tác. Nhưng một trong những người khó nhất để giải quyết cho hầu hết người mới bắt đầu là bộ sưu tập kỷ lục. Trong bài viết này, tôi sẽ hướng dẫn bạn qua bộ sưu tập kỷ lục và giúp bạn hiểu làm thế nào tất cả các phần của thử thách hoạt động. Các tham số là các loại biến đặc biệt được truyền vào hàm và đóng vai trò là người giữ chỗ cho các giá trị thực. Khi hàm được gọi, thì chúng ta sẽ sử dụng các giá trị thực được gọi là đối số. Đây là một ví dụ về các tham số chức năng của bộ sưu tập bản ghi. Tham số Cách hiểu các tham số chức năng
function updateRecords[records, id, prop, value]
7 đại diện cho một đối tượng theo nghĩa đen. Đây là đối tượng theo nghĩa đen từ thử thách: 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
Tham số
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
8 đại diện cho các đối tượng lồng bên trong đối tượng 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
9 của chúng tôi. Đây là một ví dụ cho một trong các ID. 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
Tham số
albumTitle: 'ABBA Gold'
0 đại diện cho tên thuộc tính hoặc khóa, bên trong các đối tượng. albumTitle: 'ABBA Gold'
1, albumTitle: 'ABBA Gold'
2 và albumTitle: 'ABBA Gold'
3 là tất cả các ví dụ về các thuộc tính bên trong các đối tượng 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
8.Tham số
albumTitle: 'ABBA Gold'
5 biểu thị giá trị trong thuộc tính của đối tượng. Trong ví dụ dưới đây, albumTitle: 'ABBA Gold'
1 sẽ là tên thuộc tính hoặc khóa, trong khi albumTitle: 'ABBA Gold'
7 sẽ là giá trị.albumTitle: 'ABBA Gold'
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
7, 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
8, albumTitle: 'ABBA Gold'
0 và albumTitle: 'ABBA Gold'
5 là bốn tham số mà chúng ta sẽ sử dụng bên trong hàm.Cách giải quyết các quy tắc cho thử thách
Chìa khóa để vượt qua thử thách này là phá vỡ cả bốn quy tắc này và giải quyết chúng mỗi lần. Dưới đây là bốn quy tắc chúng tôi phải đưa vào chức năng của mình:
- Nếu
0 không phải làalbumTitle: 'ABBA Gold'
3 vàalbumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy cập nhật hoặc đặt album đóalbumTitle: 'ABBA Gold'
0 thànhalbumTitle: 'ABBA Gold'
5.albumTitle: 'ABBA Gold'
- Nếu
0 làalbumTitle: 'ABBA Gold'
3 nhưng album không có thuộc tínhalbumTitle: 'ABBA Gold'
3, hãy tạo một mảng trống và thêmalbumTitle: 'ABBA Gold'
5 vào nó.albumTitle: 'ABBA Gold'
- Nếu
0 làalbumTitle: 'ABBA Gold'
3 vàalbumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêmalbumTitle: 'ABBA Gold'
5 vào cuối mảngalbumTitle: 'ABBA Gold'
3 hiện tại của album.albumTitle: 'ABBA Gold'
- Nếu
5 là một chuỗi trống, hãy xóa thuộc tínhalbumTitle: 'ABBA Gold'
0 đã cho khỏi album.albumTitle: 'ABBA Gold'
Cách giải quyết quy tắc đầu tiên
Đây là quy tắc đầu tiên:
- Nếu
0 không phải làalbumTitle: 'ABBA Gold'
3 vàalbumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy cập nhật hoặc đặt album đóalbumTitle: 'ABBA Gold'
0 thànhalbumTitle: 'ABBA Gold'
5.albumTitle: 'ABBA Gold'
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 nhưng album không có thuộc tính albumTitle: 'ABBA Gold'
3, hãy tạo một mảng trống và thêm albumTitle: 'ABBA Gold'
5 vào nó.function updateRecords[records, id, prop, value] {
if [condition is true] {
// do some code
}
return records;
}
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêm albumTitle: 'ABBA Gold'
5 vào cuối mảng albumTitle: 'ABBA Gold'
3 hiện tại của album.if [condition is true]
Nếu
albumTitle: 'ABBA Gold'
5 là một chuỗi trống, hãy xóa thuộc tính albumTitle: 'ABBA Gold'
0 đã cho khỏi album.Cách giải quyết quy tắc đầu tiên
Đây là quy tắc đầu tiên:
Phần đầu tiên của quy tắc đó có thể được coi là một tuyên bốif[prop !== tracks]
3. Trong chức năng của chúng tôi, chúng tôi có thể bắt đầu viết ra cấu trúc cơ bản cho một tuyên bố if[prop !== tracks]
3.To get rid of that error message,
albumTitle: 'ABBA Gold'
3 needs to be a string.if[prop !== 'tracks']
Bây giờ chúng ta cần tìm ra những gì để viết cho điều kiện của chúng ta ở đây:
- Phần đầu tiên của quy tắc cho biết nếu
0 không phải làalbumTitle: 'ABBA Gold'
3. Chúng ta có thể viết lại rằng như thểalbumTitle: 'ABBA Gold'
0 không bằngalbumTitle: 'ABBA Gold'
3.albumTitle: 'ABBA Gold'
Hãy nhớ rằng toán tử bất bình đẳng
if[prop !== tracks]
9 có thể được sử dụng để kiểm tra xem hai toán hạng không bằng nhau.Nhưng chúng tôi không thể sử dụng
albumTitle: 'ABBA Gold'
3 như thế này trong mã của chúng tôi vì chúng tôi sẽ nhận được thông báo lỗi. if [prop !== 'tracks' && value !== ""] {
// do some code here
}
if[prop !== tracks]
Để loại bỏ thông báo lỗi đó, albumTitle: 'ABBA Gold'
3 cần phải là một chuỗi.- Nhưng chúng tôi chưa kết thúc với tình trạng của mình vì chúng tôi vẫn phải giải quyết phần này:
và
albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trốngChúng ta có thể sử dụng toán tử bất bình đẳng
if[prop !== tracks]
9 một lần nữa để nói if[prop !== 'tracks']
4. Sau đó, chúng ta có thể thay thế từ if[prop !== 'tracks']
5 bằng cách sử dụng toán tử và if[prop !== 'tracks']
6.records[id][prop]
Đây là những gì điều kiện đầu tiên trông giống như cho đến nay:
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
0Bây giờ chúng tôi đã tìm ra tình trạng của mình, chúng tôi cần tìm ra những gì đi bên trong nó. & nbsp; Đây là phần thứ hai của quy tắc đó:
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
1Cập nhật hoặc đặt album đó albumTitle: 'ABBA Gold'
0 thành albumTitle: 'ABBA Gold'
5
albumTitle: 'ABBA Gold'
albumTitle: 'ABBA Gold'
Trước tiên chúng ta cần tham khảo toàn bộ đối tượng theo nghĩa đen là
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
7. Sau đó, chúng ta cần truy cập 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
8 đại diện cho các album.- Nếu
0 làalbumTitle: 'ABBA Gold'
3 nhưng album không có thuộc tínhalbumTitle: 'ABBA Gold'
3, hãy tạo một mảng trống và thêmalbumTitle: 'ABBA Gold'
5 vào nó.albumTitle: 'ABBA Gold'
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêm albumTitle: 'ABBA Gold'
5 vào cuối mảng albumTitle: 'ABBA Gold'
3 hiện tại của album.- Nếu
5 là một chuỗi trống, hãy xóa thuộc tínhalbumTitle: 'ABBA Gold'
0 đã cho khỏi album.albumTitle: 'ABBA Gold'
Cách giải quyết quy tắc đầu tiên
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
2Đây là quy tắc đầu tiên:
- Phần đầu tiên của quy tắc đó có thể được coi là một tuyên bố
3. Trong chức năng của chúng tôi, chúng tôi có thể bắt đầu viết ra cấu trúc cơ bản cho một tuyên bốif[prop !== tracks]
3.if[prop !== tracks]
Bây giờ chúng ta cần tìm ra những gì để viết cho điều kiện của chúng ta ở đây:
Phần đầu tiên của quy tắc cho biết nếu
albumTitle: 'ABBA Gold'
0 không phải là albumTitle: 'ABBA Gold'
3. Chúng ta có thể viết lại rằng như thể albumTitle: 'ABBA Gold'
0 không bằng albumTitle: 'ABBA Gold'
3.const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
3Hãy nhớ rằng toán tử bất bình đẳng
if[prop !== tracks]
9 có thể được sử dụng để kiểm tra xem hai toán hạng không bằng nhau.const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
4Nhưng chúng ta cần kiểm tra xem album không có thuộc tính
albumTitle: 'ABBA Gold'
3. Vì phương thức records[id][prop]
4 trả về Boolean [Đúng hoặc Sai] thì chúng ta có thể viết điều này:const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
5Chúng ta cũng có thể viết lại câu lệnh đó bằng toán tử
records[id][prop]
9 const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
00 như thế này:const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
6Bằng cách sử dụng toán tử
records[id][prop]
9 const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
00 ở đây, về cơ bản chúng tôi đang nói nếu điều gì đó không đúng.Đây là những gì tuyên bố
if[prop !== tracks]
3 của chúng tôi trông giống như cho đến nay:const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
7Đây là phần thứ hai của quy tắc:
- Tạo một mảng trống và thêm
5 vào nóalbumTitle: 'ABBA Gold'
Chúng tôi biết rằng để tạo một mảng, chúng tôi có thể sử dụng dấu ngoặc
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
05. Sau đó, chúng ta có thể thêm albumTitle: 'ABBA Gold'
5 bên trong nó như thế này:const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
8Phần cuối cùng là gán mảng đó cho thuộc tính của album như thế này:
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
9Đây là toàn bộ điều kiện thứ hai trông như thế nào:
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
0Cách giải quyết quy tắc thứ ba
Đây là quy tắc thứ ba:
- Nếu
0 làalbumTitle: 'ABBA Gold'
3 vàalbumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêmalbumTitle: 'ABBA Gold'
5 vào cuối mảngalbumTitle: 'ABBA Gold'
3 hiện tại của album.albumTitle: 'ABBA Gold'
Hãy xem điều kiện ở đây:
- Nếu
0 làalbumTitle: 'ABBA Gold'
3 vàalbumTitle: 'ABBA Gold'
5 không phải là một chuỗi trốngalbumTitle: 'ABBA Gold'
Chúng tôi biết từ mã trước rằng
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 có thể được viết lại là const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
17. & nbsp;Chúng ta cũng có thể viết lại
albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống như if[prop !== 'tracks']
4.Đây là những gì điều kiện thứ ba của chúng tôi trông giống như cho đến nay.
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
1Đây là phần thứ hai của quy tắc:
- Tạo một mảng trống và thêm
5 vào nóalbumTitle: 'ABBA Gold'
Chúng tôi biết rằng để tạo một mảng, chúng tôi có thể sử dụng dấu ngoặc
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
05. Sau đó, chúng ta có thể thêm albumTitle: 'ABBA Gold'
5 bên trong nó như thế này: 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2Phần cuối cùng là gán mảng đó cho thuộc tính của album như thế này:
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
3Đây là toàn bộ điều kiện thứ hai trông như thế nào:
Cách giải quyết quy tắc thứ ba
- Đây là quy tắc thứ ba:
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêm albumTitle: 'ABBA Gold'
5 vào cuối mảng albumTitle: 'ABBA Gold'
3 hiện tại của album.- Hãy xem điều kiện ở đây:
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trốngChúng tôi biết từ mã trước rằng
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 có thể được viết lại là const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
17. & nbsp; 2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
4Đây là phần thứ hai của quy tắc:
- Tạo một mảng trống và thêm
5 vào nóalbumTitle: 'ABBA Gold'
Chúng tôi biết rằng để tạo một mảng, chúng tôi có thể sử dụng dấu ngoặc
const recordCollection = {
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
05. Sau đó, chúng ta có thể thêm albumTitle: 'ABBA Gold'
5 bên trong nó như thế này:Phần cuối cùng là gán mảng đó cho thuộc tính của album như thế này:
Đây là toàn bộ điều kiện thứ hai trông như thế nào:Cách giải quyết quy tắc thứ ba
2548: {
albumTitle: 'Slippery When Wet',
artist: 'Bon Jovi',
tracks: ['Let It Rock', 'You Give Love a Bad Name']
},
6Đây là quy tắc thứ ba:
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống, hãy thêm albumTitle: 'ABBA Gold'
5 vào cuối mảng albumTitle: 'ABBA Gold'
3 hiện tại của album.Hãy xem điều kiện ở đây:
Nếu
albumTitle: 'ABBA Gold'
0 là albumTitle: 'ABBA Gold'
3 và albumTitle: 'ABBA Gold'
5 không phải là một chuỗi trống