4 回答

TA貢獻2065條經驗 獲得超14個贊
使用 Object.entires()andisArray檢查它是否是一個數組
obj = {
name: "jane",
age: 22,
interested_books: [
{ book_name: "xxx", author_name: "yyy" },
{ book_name: "aaa", author_name: "zzz" },
],
hobbies: ["reading", "football"],
address: { street_name: "dace street", door_no: 12 },
};
function getArrWithOb(obj) {
return Object.fromEntries(
Object.entries(obj).filter((o) => {
if (Array.isArray(o[1])) {
if (o[1].every((ob) => typeof ob == "object")) {
return o;
}
}
})
);
}
console.log(getArrWithOb(obj));
從評論看來你想要返回的是你可以使用的屬性的名稱reduce
obj = { name: "jane", age: 22, interested_books: [ { book_name: "xxx", author_name: "yyy" }, { book_name: "aaa", author_name: "zzz" }, ], hobbies: ["reading", "football"], address: { street_name: "dace street", door_no: 12 }, };
function getArrWithOb(obj) {
return Object.entries(obj).reduce((r, o) => {
if (Array.isArray(o[1])) {
if (o[1].every((ob) => typeof ob == "object")) {
r.push(o[0]);
}
}
return r;
}, []);
}
console.log(getArrWithOb(obj));

TA貢獻1757條經驗 獲得超7個贊
使用isArray檢查值是否為數組
const obj = {
name: 'jane',
age: 22,
interested_books: [{
book_name: 'xxx',
author_name: 'yyy'
}, {
book_name: 'aaa',
author_name: 'zzz'
}],
hobbies: ['reading', 'football'],
address: {
street_name: 'dace street',
door_no: 12
}
}
for (let keys in obj) {
if (Array.isArray(obj[keys])) {
obj[keys].forEach(item => console.log(item))
}
}

TA貢獻1876條經驗 獲得超7個贊
const obj = {
name: 'jane',
age: 22,
interested_books: [{
book_name: 'xxx',
author_name: 'yyy'
}, {
book_name: 'aaa',
author_name: 'zzz'
}],
hobbies: ['reading', 'football'],
address: {
street_name: 'dace street',
door_no: 12
}
}
for (const key in obj) {
if (obj[key] instanceof Array) {
console.log('I am array', key);
const isArrayOfObject = obj[key].every(item => typeof item === "object");
if (isArrayOfObject) {
// your_logic_here
}
}
}

TA貢獻1712條經驗 獲得超3個贊
試試下面的功能。這是為了獲取對象中的數組項。
const obj = {
name: 'jane',
age: 22,
interested_books: [{ book_name: 'xxx', author_name: 'yyy' }, { book_name: 'aaa', author_name: 'zzz' }],
hobbies: ['reading', 'football'],
address: { street_name: 'dace street', door_no: 12 }
};
const getArraysFromObject = obj => {
const results = {};
Object.keys(obj).map(field => {
if (Array.isArray(obj[field])) {
results[field] = obj[field];
}
});
return results;
};
console.log(results);
// {
// "interested_books": [
// { "book_name": "xxx", "author_name": "yyy" },
// { "book_name": "aaa", "author_name": "zzz" }
// ],
// "hobbies": ["reading", "football"]
// }
添加回答
舉報