假设我有一个这样的JSON数组:
[{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41Awww33","website":"yahoo"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"},
{"name":"Lenovo Thinkpad 41A429rr8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ff8","website":"ebay"},
{"name":"Lenovo Thinkpad 41A429ss8","website":"rediff"},
{"name":"Lenovo Thinkpad 41A429sg8","website":"yahoo"}]
我希望获得一个数组,其中包含所有具有website
值等于google
的name
。
首先,为了过滤JSON数组,只包含website
为google
的条目,我有以下代码:
var data_filter = data.filter( element => element.website =="google");
console.log(data_filter);
这将产生以下结果:
[{"name":"Lenovo Thinkpad 41A4298","website":"google"},
{"name":"Lenovo Thinkpad 41A2222","website":"google"},
{"name":"Lenovo Thinkpad 41A424448","website":"google"}]
我需要在下一步中如何将name
分离成一个单独的数组。我尝试了以下方法:
let new_array = [];
new_array.push(data_filter.body.name)
这让我遇到了一个关于name
的未定义错误。我也尝试了以下代码:
new_array.push(data_filter.name)
new_array.push(data_filter.body[0].name)
但是这些方法都不起作用。我在这里缺少了什么?
附注:JSON数据和过滤器方法在这个SO帖子中提到:post - 感谢原作者和回答者。
element.website
分配一个真值,因此所有项目都将通过过滤测试。 - CertainPerformancedata_filter.body
是什么?你刚刚将data_filter
记录为一个数组。 - Bergi