使用某些列过滤JSON数据,然后再次使用json格式创建数据 [英] Filter JSON data with some column and again create the data with json format
问题描述
大家好,
我有以下json数据。
我想使用url和yyyy_mm列进行过滤并创建json格式的新数据。
i这里有2个要求: -
1)。使用网址列过滤,假设我将网址作为http://google.com传递,那么它应该返回包含google.com的所有数据。
2)。使用url和yyyy_mm列过滤。所以在这种情况下应该返回任何匹配的行。
请注意: - 它应该返回我json对象。
var tempData = [{url:http://google.com,yyyy_mm:2017-12,技能: C#,count:3},{url:http://google.com,yyyy_mm:2017-11,技能:F#,count:4}
{url:http://google.com,yyyy_mm:2017-10,技能:asp.net,count:4},{url :yahoo.com,yyyy_mm:2017-12,技能:vb.net,count:10},
{url:yahoo.com, yyyy_mm:2017-11,技能:vb.net,计数:5},
{url:yahoo.com,yyyy_mm:2017-11 ,技能:vb.net,计数:6},
{url:yahoo.com,yyyy_mm:2017-11,技能:vb。 net,count:10},
{url:yahoo.com,yyyy_mm:2017-10,技能:vb.net,count:11 },
{url:yahoo.com,yyyy_mm:2017-10,技能:json,count:100}]
< br $>
先谢谢!!!!!
我尝试过:
我尝试使用$ .grep但没有取得任何成果。在某些情况下,$ .grep无效。
我正在使用Node.JS并动态创建html标签并显示数据。
.grep但没有取得任何成果。在某些情况下
.grep无效。
我正在使用Node.JS并动态创建html标签并显示数据。
尝试
var tempData = [{url:http://google.com,yyyy_mm: 2017-12,技能:C#,计数:3},
{url:http://google.com,yyyy_mm:2017-11, 技能:F#,计数:4},
{url:http://google.com,yyyy_mm:2017-10,技能:asp .net,count:4},
{url:yahoo.com,yyyy_mm:2017-12,技能:vb.net,count: 10},
{url:yahoo.com,yyyy_mm:2017-11,技能:vb.net,count:5},
{ url:yahoo.com,yyyy_mm:2017-11,技能:vb.net,count:6},
{url:yahoo.com ,yyyy_mm:2017-11,技能:vb.net,count:10},
{url:yahoo.com,yyyy_mm:2017 -10,技能:vb.net,count:11},
{url:yahoo.com,yyyy_mm :2017-10,技能:json,count:100}]
函数过滤器(数据,网址,日期){
var result = [];
if(url)
result = data.filter(function(item){return item.url == url});
if(date)
result = result.filter(function(item){return item.yyyy_mm == date});
返回结果;
}
var data1 = filter(tempData,'yahoo.com');
var data2 = filter(tempData,'yahoo.com','2017-10');
调试器
参考 JavaScript数组过滤器()方法 [ ^ ]
Hi All,
I have below json data.
I want to filter using url and yyyy_mm column and create the new data in json format.
i have 2 requirements here:-
1). filter using url column, suppose if i pass url as http://google.com then it should return me all data which contains google.com.
2). filter using url and yyyy_mm column. So in this case whatever matching rows should be returned.
Please note that :- it should return me json object.
var tempData =[{"url":"http://google.com","yyyy_mm":"2017-12","skills":"C#","count":3}, {"url":"http://google.com","yyyy_mm":"2017-11","skills":"F#","count":4}
{"url":"http://google.com","yyyy_mm":"2017-10","skills":"asp.net","count":4}, {"url":"yahoo.com","yyyy_mm":"2017-12","skills":"vb.net","count":10},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":5},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":6},
{"url":"yahoo.com","yyyy_mm":"2017-11","skills":"vb.net","count":10},
{"url":"yahoo.com","yyyy_mm":"2017-10","skills":"vb.net","count":11},
{"url":"yahoo.com","yyyy_mm":"2017-10","skills":"json","count":100}]
Thanks in Advance!!!!!
What I have tried:
I tried using $.grep but did not achieve anything. In some cases $.grep is not working.
I am using Node.JS and creating html tags dynamically and showing data.
.grep but did not achieve anything. In some cases
.grep is not working.
I am using Node.JS and creating html tags dynamically and showing data.
try
var tempData = [{ "url": "http://google.com", "yyyy_mm": "2017-12", "skills": "C#", "count": 3 }, { "url": "http://google.com", "yyyy_mm": "2017-11", "skills": "F#", "count": 4 }, { "url": "http://google.com", "yyyy_mm": "2017-10", "skills": "asp.net", "count": 4 }, { "url": "yahoo.com", "yyyy_mm": "2017-12", "skills": "vb.net", "count": 10 }, { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 5 }, { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 6 }, { "url": "yahoo.com", "yyyy_mm": "2017-11", "skills": "vb.net", "count": 10 }, { "url": "yahoo.com", "yyyy_mm": "2017-10", "skills": "vb.net", "count": 11 }, { "url": "yahoo.com", "yyyy_mm": "2017-10", "skills": "json", "count": 100 }] function filter(data, url, date) { var result = []; if (url) result = data.filter(function (item) { return item.url == url }); if (date) result = result.filter(function (item) { return item.yyyy_mm == date }); return result; } var data1 = filter(tempData, 'yahoo.com'); var data2 = filter(tempData, 'yahoo.com', '2017-10'); debugger
这篇关于使用某些列过滤JSON数据,然后再次使用json格式创建数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!