TypeError: object.foreach không phải là một hàm trong javascript #
Xảy ra lỗi "Object.foreach không phải là hàm" vì phương thức forEach
không được triển khai trên các đối tượng. Để lặp lại một đối tượng, hãy sử dụng phương thức Object.keys[]
để lấy một mảng các phím của đối tượng và gọi phương thức forEach[]
trên mảng các phím.
Dưới đây là một ví dụ về cách xảy ra lỗi.
Copied!
const obj = { name: 'James', country: 'Chile', }; // ⛔️ TypeError: object.forEach is not a function obj.forEach[element => { console.log[element]; }];
Để giải quyết lỗi, hãy sử dụng phương thức đối tượng.KEYS để lấy một mảng các phím của đối tượng và gọi phương thức mảng.Foreach trên mảng.
Copied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ ['name', 'country'] console.log[Object.keys[obj]]; Object.keys[obj].forEach[key => { console.log[key]; // 👉️ name, country console.log[obj[key]]; // 👉️ James, Chile }];
Phương thức Object.keys
trả về một mảng các khóa của đối tượng, trên đó chúng ta có thể gọi phương thức Array.forEach
.
Bạn cũng có thể sử dụng phương thức đối tượng.values [] để có được một mảng các giá trị của đối tượng.
Copied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ ['James', 'Chile'] console.log[Object.values[obj]]; Object.values[obj].forEach[value => { console.log[value]; // 👉️ James, Chile }];
Nếu bạn chỉ quan tâm đến các giá trị của đối tượng, hãy lấy một mảng các giá trị của đối tượng bằng phương thức Object.values
và lặp qua mảng bằng phương thức Array.forEach
.
Nếu bạn cần các khóa và giá trị của một đối tượng trong một mảng, hãy sử dụng phương thức đối tượng.entries.
Copied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ [['name', 'James'], ['country', 'Chile']] console.log[Object.entries[obj]]; Object.entries[obj].forEach[[[key, value]] => { console.log[key]; // 👉️ name, country console.log[value]; // 👉️ James, Chile }];
Phương thức
1 trả về một mảng mảng, trong đó các mảng bên trong bao gồm 2 phần tử - khóa và giá trị.Copied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ ['name', 'country'] console.log[Object.keys[obj]]; Object.keys[obj].forEach[key => { console.log[key]; // 👉️ name, country console.log[obj[key]]; // 👉️ James, Chile }];
Chúng tôi đã sử dụng phá hủy mảng để phá hủy
2 vàCopied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ ['name', 'country'] console.log[Object.keys[obj]]; Object.keys[obj].forEach[key => { console.log[key]; // 👉️ name, country console.log[obj[key]]; // 👉️ James, Chile }];
3 từ mỗi mảng bên trong và sử dụng các biến trực tiếp trong phương thứcCopied!
const obj = { name: 'James', country: 'Chile', }; // 👇️ ['name', 'country'] console.log[Object.keys[obj]]; Object.keys[obj].forEach[key => { console.log[key]; // 👉️ name, country console.log[obj[key]]; // 👉️ James, Chile }];
forEach[]
của chúng tôi.Sự kết luận #
Xảy ra lỗi "Object.foreach không phải là hàm" vì phương thức forEach
không được triển khai trên các đối tượng. Để lặp lại một đối tượng, hãy sử dụng phương thức Object.keys[]
để lấy một mảng các phím của đối tượng và gọi phương thức forEach[]
trên mảng các phím.