将对象的属性访问到嵌套数组中-Javascript
我想从以下数组中检索所有文本(文本1、文本2…):将对象的属性访问到嵌套数组中-Javascript,javascript,arrays,loops,object,nested,Javascript,Arrays,Loops,Object,Nested,我想从以下数组中检索所有文本(文本1、文本2…): [ { "reviews": [ { "_id": "5e84239d6e24358b50f3fe4e", "text": "My text 1" }, { "_id": "5e8423a46e24358b50f3fe4f", "text": "My text 2" } ] }, {
[
{
"reviews":
[
{
"_id": "5e84239d6e24358b50f3fe4e",
"text": "My text 1"
},
{
"_id": "5e8423a46e24358b50f3fe4f",
"text": "My text 2"
}
]
},
{
"reviews":
[
{
"_id": "5e84239d6e24358b50f3fe4e",
"text": "My text 3"
},
{
"_id": "5e8423a46e24358b50f3fe4f",
"text": "My text 4"
}
]
},
{
"reviews":
[
{
"_id": "5e84239d6e24358b50f3fe4e",
"text": "My text 5"
},
{
"_id": "5e8423a46e24358b50f3fe4f",
"text": "My text 6"
}
]
}
]
此数组存储在名为stores的变量中
我尝试了以下方法:
const list text=stores.map(count=>count.reviews.text
/[null,null,null]const list text=stores.map((count,i)=>count.reviews[i].text)
//无法读取未定义的属性“text”const listText=stores.forEach((key,i)=>key.reviews[i].text)
//无法读取未定义的属性“text”
你能帮帮我吗,
非常感谢使用,您可以迭代每个对象,然后将每个对象的reviews数组.map()
转换为包含文本属性的数组。.flatMap()
允许您将所有内部映射数组结果展平到一个较大的结果数组中
const stores=[{“reviews”:[{“id”:“5e84239d6e24358b50f3fe4e”,“text”:“我的文本1”},{“id”:“5e8423a46e24358b50f3fe4f”,“text”:“我的文本2”},{“reviews”:[{“id”:“5e84239d6e24358b50f3fe4e”,“text”:“我的文本3”},{“id”:“5e8423a46e24358b50f3fe4f”,“text”:“我的文本4”},{“reviews”},{“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本5”},{“\u id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本6”}];
const res=stores.flatMap((o)=>o.reviews.map(({text})=>text));
console.log(res);
使用,您可以迭代每个对象,然后将每个对象的reviews数组.map()
转换为包含文本属性的数组。.flatMap()
允许您将所有内部映射数组结果展平到一个更大的结果数组中
const stores=[{“reviews”:[{“id”:“5e84239d6e24358b50f3fe4e”,“text”:“我的文本1”},{“id”:“5e8423a46e24358b50f3fe4f”,“text”:“我的文本2”}},{“reviews”:[{“id”:“5e84239d6e24358b50f3fe4e”,“text”:“我的文本3”},{“id”:“5e8423a46e24358b50f3fe4f”,“text”:“我的文本4”},{“reviews”},{5e84239d6e24358b50f3fe4e,“文本”:“我的文本5”},{“\u id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本6”}];
const res=stores.flatMap((o)=>o.reviews.map(({text})=>text));
console.log(res);
您不能使用count.reviews.text
因为reviews是一个数组,所以您还应该迭代查看:
const数据=[
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本1”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本2”
}
]
},
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本3”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本4”
}
]
},
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本5”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本6”
}
]
}
]
const listText=data.reduce((acc,current)=>acc.concat(current.reviews.map(it=>it.text)),[])
console.log(listText)
您不能使用count.reviews.text
因为reviews是一个数组,所以您还应该迭代查看:
const数据=[
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本1”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本2”
}
]
},
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本3”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本4”
}
]
},
{
“审查”:
[
{
“_id”:“5e84239d6e24358b50f3fe4e”,
“文本”:“我的文本5”
},
{
“_id”:“5e8423a46e24358b50f3fe4f”,
“文本”:“我的文本6”
}
]
}
]
const listText=data.reduce((acc,current)=>acc.concat(current.reviews.map(it=>it.text)),[])
console.log(listText)
尝试以下操作:
let output = [];
input.map(function (item_1) {
item_1.reviews.map(function (item_2) {
output.push(item_2.text);
})
});
请尝试以下操作:
let output = [];
input.map(function (item_1) {
item_1.reviews.map(function (item_2) {
output.push(item_2.text);
})
});
地图和平面图:
const data=[
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本1”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本2”}],
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本3”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本4”}],
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本5”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本6”}]
console.log(
data.map(items=>items.reviews.map(review=>review.text)).flat()
)
地图和平面图:
const data=[
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本1”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本2”}],
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本3”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本4”}],
{“评论”:[{“_id”:“5e84239d6e24358b50f3fe4e”,“文本”:“我的文本5”},{“_id”:“5e8423a46e24358b50f3fe4f”,“文本”:“我的文本6”}]
console.log(
data.map(items=>items.reviews.map(review=>review.text)).flat()
)
谢谢@Abhishek Kulkarni:)谢谢@Abhishek Kulkarni:)太好了,它在@Nick Parsons.You's day:)很好的解释,完美的解释,在@Nick Parsons.You's day:)很好的解释,不用.flat()
它可以工作,即使我将数组放入数组中。但是当使用.flat()
,我记录平面不是一个函数
。感谢@mplungjan没有使用.flat()
它可以工作,即使我将数组放入数组中。但是当使用.flat()时
,我的logflat不是一个函数
。谢谢@mplungjanYes,它工作得很好:)谢谢。如果我只想从数组中选取一些值而不是其他值呢?在我的示例中,我只有\u id
和文本
。但是假设我还有其他属性,例如照片
,slug
..我如何确保只选择\u id
和文本
,而不选择其他属性?请clari