Viết hàm isSame() nhận đối tượng lồng nhau, trả về boolean cho biết tất cả các khóa cuối cùng có cùng giá trị hay không.
Ví dụ:
const obj = { a: 1, b: 1, c: { aa: 1 }};// Trả về true vì tất cả khóa cuối cùng đều có giá trị 1Ví dụ
const obj = { a: 1, b: 1, c: { aa: 3 }};const allSame = (obj, value) => { const keys = Object.keys(obj); for (let i = 0; i < keys.length; i++) { if (typeof obj[keys[i]] === 'object' && !Array.isArray(obj[keys[i]])) { return allSame(obj[keys[i]], value); } if (!value) { value = obj[keys[i]]; continue; } if (obj[keys[i]] !== value) { return false; } } return true;};console.log(allSame(obj));console.log(allSame({ a: 1, b: 1, c: { aa: 1 } }));console.log(allSame({ a: { x: 1 }, b: 1, c: { aa: 1 } }));console.log(allSame({ a: 1, b: 1, c: { aa: 2 } }));Kết quả
Đầu ra trong console sẽ là:
false true true false