Javascript 如何在重命名对象时使用Array.prototype.filter选择性地过滤Json数据';结果数组中的属性?

Javascript 如何在重命名对象时使用Array.prototype.filter选择性地过滤Json数据';结果数组中的属性?,javascript,array.prototype.map,Javascript,Array.prototype.map,我有一个Json,看起来像这样 { "score": "1200.65", "num_games": "160", "wins": "110", "year": "2013" }, { "score": "705.23", "num_games": "34", "wins": "21", "year": "2014" }, { "score": "467.12", "num_games": "77", "wi

我有一个Json,看起来像这样

{
    "score": "1200.65",
    "num_games": "160",
    "wins": "110",
    "year": "2013"
},
{
    "score": "705.23",
    "num_games": "34",
    "wins": "21",
    "year": "2014"
},
{
    "score": "467.12",
    "num_games": "77",
    "wins": "30",
    "year": "2015"
},
我想创建一个对象数组(包含x和y),可以按x属性的年数(例如2014年到2015年之间的年数)和特定属性的值作为y(例如“分数”)进行过滤。 例如,如果我按2014-2015年的范围和财产“分数”进行过滤,则生成的数组应为:

[{x:'2014', y: 705.23}, {x:'2015', y: 467.12}]
[{x:'2014', y: 34}, {x:'2015', y: 77}]
另一个例子是,如果我按2014-2015年的范围和属性“num_games”进行过滤,则生成的数组应为:

[{x:'2014', y: 705.23}, {x:'2015', y: 467.12}]
[{x:'2014', y: 34}, {x:'2015', y: 77}]
我该怎么做?Array.prototype.filter是用于此的正确工具吗

  • 使用
    array\Filter
  • 使用
    array\map
  • var数据=[{“分数”:“1200.65”,“数值游戏”:“160”,“胜利”:“110”,“年份”:“2013”},{“分数”:“705.23”,“数值游戏”:“34”,“胜利”:“21”,“年份”:“2014”},{“分数”:“467.12”,“数值游戏”:“77”,“胜利”:“30”,“年份”:“2015”};
    函数getFilteredData(数据、开始、结束){
    返回数据.过滤器(函数(项){
    
    return+start过滤器、贴图、对象销毁可以完成以下工作:

    const y=[{
    “分数”:“1200.65”,
    “数字游戏”:“160”,
    “胜利”:“110”,
    “年份”:“2013年”
    },
    {
    “分数”:“705.23”,
    “数字游戏”:“34”,
    “胜利”:“21”,
    “年份”:“2014年”
    },
    {
    “分数”:“467.12”,
    “数字游戏”:“77”,
    “胜利”:“30”,
    “年份”:“2015年”
    }
    ];
    常数res=y.filter(o=>o.year==2014)(({
    年份:x,
    分数:y
    }) => ({
    x,,
    Y
    }))
    
    console.log(res)
    首先按日期筛选数组,然后将筛选的项映射到所需的格式。您可以使用分解结构缩短代码:

    const数据=[{
    “分数”:“1200.65”,
    “数字游戏”:“160”,
    “胜利”:“110”,
    “年份”:“2013年”
    }, {
    “分数”:“705.23”,
    “数字游戏”:“34”,
    “胜利”:“21”,
    “年份”:“2014年”
    }, {
    “分数”:“467.12”,
    “数字游戏”:“77”,
    “胜利”:“30”,
    “年份”:“2015年”
    }];
    常量过滤器比=(数据,[min,max],属性)=>数据
    .filter({year}=>year>=min&&year({x,y}));
    console.log(filterBy(数据,[2013,2014],'score');
    log(filterBy(data,[2013,2013],'wins'));
    您可以使用获取所需范围内的对象,然后使用从筛选列表中创建对象

    见下例:

    const arr=[{
    “分数”:“1200.65”,
    “数字游戏”:“160”,
    “胜利”:“110”,
    “年份”:“2013年”
    },
    {
    “分数”:“705.23”,
    “数字游戏”:“34”,
    “胜利”:“21”,
    “年份”:“2014年”
    },
    {
    “分数”:“467.12”,
    “数字游戏”:“77”,
    “胜利”:“30”,
    “年份”:“2015年”
    }];
    const get_items=(arr[sY,eY],prop)=>
    啊
    
    .filter(({year})=>+sY您可以筛选并映射所需的值

    函数getParts(数组,[min,max],键){ 返回数组
    .filter({year})=>+min First
    filter
    要选择的对象,然后
    将它们映射到所需格式的新对象(使用
    x
    y
    属性)。