按子孩子的数量(即本例中ISBN
的数量)对以下数组进行排序的最佳方法是什么。
const data = [{
"Arnold Bennett": {
"9781784872359": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/571b8c01-ed88-4cc1-8e0c-efe3de967147.jpg",
"title": "Clayhanger "
}
}
},
{
"Agatha Christie": {
"9780007527588": {
"thumbnail_image_url": "http://books.google.com/books/content?id=BxlamwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Mrs. McGinty's Dead"
},
"9780008129590": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/c125ee1d-c5ea-4827-a488-e9ee9c8afc8d.jpg",
"title": "The Clocks"
},
"9780007120857": {
"thumbnail_image_url": "http://books.google.com/books/content?id=RAlvswEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Murder at the Vicarage"
},
"9780007556878": {
"thumbnail_image_url": "http://books.google.com/books/content?id=Zb_inQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Dead Man's Folly"
},
"9780007120826": {
"thumbnail_image_url": "http://books.google.com/books/content?id=Dve45zlLKbUC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "4.50 from Paddington"
},
"9780007121052": {
"thumbnail_image_url": "http://books.google.com/books/content?id=QR9J95ZE2zcC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "Nemesis"
},
"9780007527519": {
"thumbnail_image_url": "http://books.google.com/books/content?id=dOrsAQAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Five Little Pigs"
},
"9780007120963": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/ba1fcb40-5383-40d9-bdfc-0e9d285b2321.jpeg",
"title": "A Murder is Announced "
},
"9780008196233": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/3a08b20a-377e-4b96-890c-1ecc3e09e595.jpg",
"title": "The Sittaford Mystery"
},
"9780008196615": {
"thumbnail_image_url": "http://books.google.com/books/content?id=6E8FvgAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "At Bertram's Hotel"
},
"9780008129484": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/fe46e96d-7f24-40f1-92e1-b60f10af9dd1.jpg",
"title": "The Mystery of the Blue Train"
},
"9780007314669": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/cd40bc91-4c28-4f97-872a-ba24f10b0564.jpg",
"title": "An Autobiography"
},
"9780006513773": {
"thumbnail_image_url": "http://books.google.com/books/content?id=JMqChKyf-0EC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "Hercule Poirot"
},
"9780007527502": {
"thumbnail_image_url": "http://books.google.com/books/content?id=9CO1mgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Murder on the Orient Express"
},
"9780007527496": {
"thumbnail_image_url": "http://books.google.com/books/content?id=ERPosgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Mysterious Affair at Styles"
},
"9780007120833": {
"thumbnail_image_url": "http://books.google.com/books/content?id=lA1KuAEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Body in the Library"
},
"9780007120734": {
"thumbnail_image_url": "http://books.google.com/books/content?id=CEEUPYluIeEC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "Five Little Pigs"
},
"9780007120970": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/fd1f1d09-c08f-4f35-8be1-a35862d9e4b6.jpg",
"title": "A Pocket Full of Rye"
},
"9780007120864": {
"thumbnail_image_url": "http://books.google.com/books/content?id=MK9JNwoZAncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "The Thirteen Problems"
},
"9780008125929": {
"thumbnail_image_url": "http://books.google.com/books/content?id=kxK7rQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Secret Adversary (隱身魔鬼)"
},
"9780007121069": {
"thumbnail_image_url": "http://books.google.com/books/content?id=ddlQBfuKWzwC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "Sleeping Murder"
},
"9780008164898": {
"thumbnail_image_url": "http://books.google.com/books/content?id=JCX2sgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Cards on the Table"
}
}
}, {
"Alain De Botton": {
"9780141035192": {
"thumbnail_image_url": "http://books.google.com/books/content?id=l4FGPwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Consolations of Philosophy"
}
}
}, {
"Alan Hollinghurst": {
"9781447275183": {
"thumbnail_image_url": "https://books-sn.s3.amazonaws.com/b46fc3f6-4950-4e4d-a734-93abd10b5351.jpeg",
"title": "The Line of Beauty"
}
}
}, {
"Alan MacDonald": {
"9781407108315": {
"thumbnail_image_url": "http://books.google.com/books/content?id=1aEGOwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Winston Churchill and His Woeful Wars"
}
}
}, {
"Aldous Huxley": {
"9780099518471": {
"thumbnail_image_url": "http://books.google.com/books/content?id=3zl4oJMUskoC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "Brave New World"
}
}
}, {
"Alessandro Manzoni": {
"9780140442748": {
"thumbnail_image_url": "http://books.google.com/books/content?id=azLiQUtMSncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api",
"title": "The Betrothed"
},
"9780241259078": {
"thumbnail_image_url": "http://books.google.com/books/content?id=nyo8jwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "The Betrothed"
}
}
}
]
我想进行排序,以使Agatha Christie
排在最前面,然后依次Alessandro Manzoni
,然后依次排列其余的子元素。
谢谢
答案 0 :(得分:3)
您可以使用sort
,Object.values
和Object.keys
const data=[{" Arnold Bennett":{"9781784872359":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/571b8c01-ed88-4cc1-8e0c-efe3de967147.jpg","title":"Clayhanger "}}},{"Agatha Christie":{"9780007527588":{"thumbnail_image_url":"http://books.google.com/books/content?id=BxlamwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Mrs. McGinty's Dead"},"9780008129590":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/c125ee1d-c5ea-4827-a488-e9ee9c8afc8d.jpg","title":"The Clocks"},"9780007120857":{"thumbnail_image_url":"http://books.google.com/books/content?id=RAlvswEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Murder at the Vicarage"},"9780007556878":{"thumbnail_image_url":"http://books.google.com/books/content?id=Zb_inQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Dead Man's Folly"},"9780007120826":{"thumbnail_image_url":"http://books.google.com/books/content?id=Dve45zlLKbUC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"4.50 from Paddington"},"9780007121052":{"thumbnail_image_url":"http://books.google.com/books/content?id=QR9J95ZE2zcC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Nemesis"},"9780007527519":{"thumbnail_image_url":"http://books.google.com/books/content?id=dOrsAQAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Five Little Pigs"},"9780007120963":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/ba1fcb40-5383-40d9-bdfc-0e9d285b2321.jpeg","title":"A Murder is Announced "},"9780008196233":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/3a08b20a-377e-4b96-890c-1ecc3e09e595.jpg","title":"The Sittaford Mystery"},"9780008196615":{"thumbnail_image_url":"http://books.google.com/books/content?id=6E8FvgAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"At Bertram's Hotel"},"9780008129484":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/fe46e96d-7f24-40f1-92e1-b60f10af9dd1.jpg","title":"The Mystery of the Blue Train"},"9780007314669":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/cd40bc91-4c28-4f97-872a-ba24f10b0564.jpg","title":"An Autobiography"},"9780006513773":{"thumbnail_image_url":"http://books.google.com/books/content?id=JMqChKyf-0EC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Hercule Poirot"},"9780007527502":{"thumbnail_image_url":"http://books.google.com/books/content?id=9CO1mgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Murder on the Orient Express"},"9780007527496":{"thumbnail_image_url":"http://books.google.com/books/content?id=ERPosgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Mysterious Affair at Styles"},"9780007120833":{"thumbnail_image_url":"http://books.google.com/books/content?id=lA1KuAEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Body in the Library"},"9780007120734":{"thumbnail_image_url":"http://books.google.com/books/content?id=CEEUPYluIeEC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Five Little Pigs"},"9780007120970":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/fd1f1d09-c08f-4f35-8be1-a35862d9e4b6.jpg","title":"A Pocket Full of Rye"},"9780007120864":{"thumbnail_image_url":"http://books.google.com/books/content?id=MK9JNwoZAncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"The Thirteen Problems"},"9780008125929":{"thumbnail_image_url":"http://books.google.com/books/content?id=kxK7rQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Secret Adversary (隱身魔鬼)"},"9780007121069":{"thumbnail_image_url":"http://books.google.com/books/content?id=ddlQBfuKWzwC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Sleeping Murder"},"9780008164898":{"thumbnail_image_url":"http://books.google.com/books/content?id=JCX2sgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Cards on the Table"}}},{"Alain De Botton":{"9780141035192":{"thumbnail_image_url":"http://books.google.com/books/content?id=l4FGPwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Consolations of Philosophy"}}},{"Alan Hollinghurst":{"9781447275183":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/b46fc3f6-4950-4e4d-a734-93abd10b5351.jpeg","title":"The Line of Beauty"}}},{"Alan MacDonald":{"9781407108315":{"thumbnail_image_url":"http://books.google.com/books/content?id=1aEGOwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Winston Churchill and His Woeful Wars"}}},{"Aldous Huxley":{"9780099518471":{"thumbnail_image_url":"http://books.google.com/books/content?id=3zl4oJMUskoC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Brave New World"}}},{"Alessandro Manzoni":{"9780140442748":{"thumbnail_image_url":"http://books.google.com/books/content?id=azLiQUtMSncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"The Betrothed"},"9780241259078":{"thumbnail_image_url":"http://books.google.com/books/content?id=nyo8jwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Betrothed"}}}]
data.sort((a,b) => {
return Object.keys(Object.values(b)[0]).length - Object.keys(Object.values(a)[0]).length
})
console.log(data)
Object.values(b)[0]
返回
{
"9781407108315": {
"thumbnail_image_url": "http://books.google.com/books/content?id=1aEGOwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
"title": "Winston Churchill and His Woeful Wars"
}
}
然后使用keys
计算该对象有多少Object.keys
答案 1 :(得分:1)
您必须获取每个对象的值,因为最顶层的对象仅包含作者,因此您将values数组的索引设置为0,这将为您提供作者下方的对象。
然后从该对象中计算密钥,即ISBN号:
const data = [{"Arnold Bennett":{"9781784872359":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/571b8c01-ed88-4cc1-8e0c-efe3de967147.jpg","title":"Clayhanger "}}},{"Agatha Christie":{"9780007527588":{"thumbnail_image_url":"http://books.google.com/books/content?id=BxlamwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Mrs. McGinty's Dead"},"9780008129590":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/c125ee1d-c5ea-4827-a488-e9ee9c8afc8d.jpg","title":"The Clocks"},"9780007120857":{"thumbnail_image_url":"http://books.google.com/books/content?id=RAlvswEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Murder at the Vicarage"},"9780007556878":{"thumbnail_image_url":"http://books.google.com/books/content?id=Zb_inQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Dead Man's Folly"},"9780007120826":{"thumbnail_image_url":"http://books.google.com/books/content?id=Dve45zlLKbUC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"4.50 from Paddington"},"9780007121052":{"thumbnail_image_url":"http://books.google.com/books/content?id=QR9J95ZE2zcC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Nemesis"},"9780007527519":{"thumbnail_image_url":"http://books.google.com/books/content?id=dOrsAQAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Five Little Pigs"},"9780007120963":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/ba1fcb40-5383-40d9-bdfc-0e9d285b2321.jpeg","title":"A Murder is Announced "},"9780008196233":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/3a08b20a-377e-4b96-890c-1ecc3e09e595.jpg","title":"The Sittaford Mystery"},"9780008196615":{"thumbnail_image_url":"http://books.google.com/books/content?id=6E8FvgAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"At Bertram's Hotel"},"9780008129484":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/fe46e96d-7f24-40f1-92e1-b60f10af9dd1.jpg","title":"The Mystery of the Blue Train"},"9780007314669":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/cd40bc91-4c28-4f97-872a-ba24f10b0564.jpg","title":"An Autobiography"},"9780006513773":{"thumbnail_image_url":"http://books.google.com/books/content?id=JMqChKyf-0EC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Hercule Poirot"},"9780007527502":{"thumbnail_image_url":"http://books.google.com/books/content?id=9CO1mgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Murder on the Orient Express"},"9780007527496":{"thumbnail_image_url":"http://books.google.com/books/content?id=ERPosgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Mysterious Affair at Styles"},"9780007120833":{"thumbnail_image_url":"http://books.google.com/books/content?id=lA1KuAEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Body in the Library"},"9780007120734":{"thumbnail_image_url":"http://books.google.com/books/content?id=CEEUPYluIeEC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Five Little Pigs"},"9780007120970":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/fd1f1d09-c08f-4f35-8be1-a35862d9e4b6.jpg","title":"A Pocket Full of Rye"},"9780007120864":{"thumbnail_image_url":"http://books.google.com/books/content?id=MK9JNwoZAncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"The Thirteen Problems"},"9780008125929":{"thumbnail_image_url":"http://books.google.com/books/content?id=kxK7rQEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Secret Adversary (隱身魔鬼)"},"9780007121069":{"thumbnail_image_url":"http://books.google.com/books/content?id=ddlQBfuKWzwC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Sleeping Murder"},"9780008164898":{"thumbnail_image_url":"http://books.google.com/books/content?id=JCX2sgEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Cards on the Table"}}},{"Alain De Botton":{"9780141035192":{"thumbnail_image_url":"http://books.google.com/books/content?id=l4FGPwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Consolations of Philosophy"}}},{"Alan Hollinghurst":{"9781447275183":{"thumbnail_image_url":"https://books-sn.s3.amazonaws.com/b46fc3f6-4950-4e4d-a734-93abd10b5351.jpeg","title":"The Line of Beauty"}}},{"Alan MacDonald":{"9781407108315":{"thumbnail_image_url":"http://books.google.com/books/content?id=1aEGOwAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"Winston Churchill and His Woeful Wars"}}},{"Aldous Huxley":{"9780099518471":{"thumbnail_image_url":"http://books.google.com/books/content?id=3zl4oJMUskoC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"Brave New World"}}},{"Alessandro Manzoni":{"9780140442748":{"thumbnail_image_url":"http://books.google.com/books/content?id=azLiQUtMSncC&printsec=frontcover&img=1&zoom=1&edge=curl&source=gbs_api","title":"The Betrothed"},"9780241259078":{"thumbnail_image_url":"http://books.google.com/books/content?id=nyo8jwEACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api","title":"The Betrothed"}}}];
const countISBNs = entry => Object.keys(Object.values(entry)[0]).length;
const sorted = data.sort((a, b) => countISBNs(b) - countISBNs(a));
console.log(sorted);