首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript或jQuery中过滤JSON数据?

如何在JavaScript或jQuery中过滤JSON数据?
EN

Stack Overflow用户
提问于 2014-05-18 10:35:55
回答 8查看 414K关注 0票数 79

如何使用Javascript或jQuery过滤JSON数据?

这是我的JSON数据:

代码语言:javascript
复制
[{"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"}]

JavaScript:

代码语言:javascript
复制
obj1 = JSON.parse(jsondata);

现在我只想要包含网站的名称和网站数据等于"yahoo"

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2014-05-18 10:42:50

这就是你应该怎么做的:(对于谷歌搜索)

代码语言:javascript
复制
$([
  {"name":"Lenovo Thinkpad 41A4298","website":"google222"},
  {"name":"Lenovo Thinkpad 41A2222","website":"google"}
  ])
    .filter(function (i,n){
        return n.website==='google';
    });

更好的解决方案:(萨勒曼)

代码语言:javascript
复制
$.grep( [{"name":"Lenovo Thinkpad 41A4298","website":"google"},{"name":"Lenovo Thinkpad 41A2222","website":"google"}], function( n, i ) {
  return n.website==='google';
});

http://jsbin.com/yakubixi/4/edit

票数 85
EN

Stack Overflow用户

发布于 2014-05-18 10:48:50

不需要jQuery,除非您针对旧的浏览器,并且不想使用shims。

代码语言:javascript
复制
var yahooOnly = JSON.parse(jsondata).filter(function (entry) {
    return entry.website === 'yahoo';
});

在ES2015中:

代码语言:javascript
复制
const yahooOnly = JSON.parse(jsondata).filter(({website}) => website === 'yahoo');
票数 39
EN

Stack Overflow用户

发布于 2018-02-02 14:01:03

以下代码适用于我:

代码语言:javascript
复制
var data = [{"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"}]

var data_filter = data.filter( element => element.website =="yahoo")
console.log(data_filter)

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23720988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档