在检索到这样的 JSON 之后:
"JSON": [
{
"mySchool": "college",
"myHome": "apartment",
"myFavoriteSport": "soccer"
},
{
"mySchool": "highschool",
"myHome": "house",
"myFavoriteSport": "hockey"
},
{
"mySchool": "college",
"myHome": "box",
"myFavoriteSport": "soccer"
},
{
"mySchool": "elementary",
"myHome": "tent",
"myFavoriteSport": "soccer"
}
]
我如何有条件地过滤它以便...如果 soccer
是 myFavoriteSport
键的值,则返回包含 myFavoriteSport 的所有对象的数组: 足球
一对?我确定最后我会将
对象放入数组中,但我不太清楚如何将它挑出来以便我可以将它分配给一个变量。
我确定它会涉及某种类型的循环,但这是我第一次使用 JSON 和这种类型的对象,所以我有点不确定如何处理它。
如果要过滤,则使用 .filter
- 只需检查 myFavoriteSport
属性是否为 soccer
:
const input = {
"JSON": [
{
"mySchool": "college",
"myHome": "apartment",
"myFavoriteSport": "soccer"
},
{
"mySchool": "highschool",
"myHome": "house",
"myFavoriteSport": "hockey"
},
{
"mySchool": "college",
"myHome": "box",
"myFavoriteSport": "soccer"
},
{
"mySchool": "elementary",
"myHome": "tent",
"myFavoriteSport": "soccer"
}
]
};
console.log(
input.JSON.filter(({ myFavoriteSport }) => myFavoriteSport === 'soccer')
);
另请注意,JSON 是一种以字符串格式 表示对象的方式。 (例如,
const myJSON = '[{"foo":"bar"},{"baz":"buzz"}]';
)。如果你有实际的对象/数组,那么它不是 JSON 格式——它只是一个普通对象。最好将 key 命名为 arr
或 personArr
或类似的名称。 There's no such thing as a "JSON Object"