API接口获得数据后处理JS数组(包含字符串对象)分组、过滤和筛选的解决方案

简介: API接口获得数据后处理JS数组(包含字符串对象)分组、过滤和筛选的解决方案

读取API后,数组多是以字符串对象的形态存在于数组中的。根据实际情况,需要对得到的数据进行分组、过滤和筛选。

如下,通过api获取以下格式数组,可以理解为从mysql数据库读取的二维数组:

    var arr = [
        {area_name: "A街道", health_id: "1", health_must: "1693", health_today: "8", checked: "1"},
        {area_name: "B镇", health_id: "2", health_must: "1771", health_today: "2", checked: "1"},
        {area_name: "C镇", health_id: "3", health_must: "1456", health_today: "0", checked: "1"},
        {area_name: "D镇", health_id: "4", health_must: "1458", health_today: "65", checked: "1"},
        {area_name: "E街道", health_id: "5", health_must: "1544", health_today: "2", checked: "1"},
        {area_name: "F街道", health_id: "6", health_must: "1597", health_today: "401", checked: "1"},
        {area_name: "H街道", health_id: "2", health_must: "1481", health_today: "7", checked: "1"},
        {area_name: "I镇", health_id: "6", health_must: "1315", health_today: "2", checked: "1"},
        {area_name: "J镇", health_id: "4", health_must: "1660", health_today: "2", checked: "0"},
        {area_name: "K街道", health_id: "4", health_must: "2240", health_today: "8", checked: "0"},
        {area_name: "L镇", health_id: "3", health_must: "1511", health_today: "8", checked: "0"},
        {area_name: "M街道", health_id: "1", health_must: "1840", health_today: "2", checked: "0"},
        {area_name: "N街道", health_id: "1", health_must: "1738", health_today: "347", checked: "0"},
        {area_name: "P街道", health_id: "1", health_must: "1512", health_today: "2", checked: "0"}
    ];


根据项目需求,我们需要提供以下数据处理结果:

1、获取health_id为指定的数据,如:health_id=1的数据数组;

2、获取多个health_id为指定的数据,如health_id=1,health_id=3,health_id=4……的数据分组数据;

3、获取health_id且(或)checked同时满足的逻辑条件数据,如health_id=1且checked=0;


这些在SQL语句中都有固定的语法,直接调用即可,那么如何在数组中实现以上的需求呢?


解决方案如下:

1.单条件单数据筛选:

    /*1.单条件单数据筛选
     *filte数组过滤,指定对象字段的的筛选方式
     * arr,包含对象的数组;
     * health_id,对象数组对应的键;
     */
    function filterByName(arr, health_id) {
        return arr.filter(item => item.health_id == health_id);
    }
    //获取health_id=4的数组数据;
    var a = filterByName(arr, "4");
    console.log(a);

返回结果:



2.单条件多数据筛选后并自动分组

    /*2.单条件单数据筛选后,并自动分组
     *filte数组过滤,指定对象字段的的筛选方式
     * arr,包含对象的数组;
     * health_id,对象数组对应的键;
     */
    function filterByPolyName(arr, nameArr) {
        var result=[];
        for(var i = 0; i < nameArr.length; i++) {
            result.push(arr.filter(item => item.health_id === nameArr[i]));
        }
        return result;
    }
    //获取health_id=1和3的数组数据;
    var b = filterByPolyName(arr,['1','3']);
    console.log(b);

返回结果:



3、逻辑条件筛选

    /*3.逻辑条件筛选,多条件多数据筛选
     *filte数组过滤,指定对象字段的的筛选方式
     * arr,包含对象的数组;
     * health_id,对象数组对应的键;
     * 根据id且checked筛选;
     */
    function filterByName2(aim, health_id, checked) {
        return aim.filter(item => item.health_id === health_id && item.checked === checked);
    }
    //health_id=1且checked=0筛选
    var c = filterByName2(arr,"1","0");
    console.log(c);

返回结果:



Done!

相关文章
|
30天前
|
JavaScript 前端开发
JS浮点数精度问题及高精度小数运算:BigNumber解决方案
JS浮点数精度问题及高精度小数运算:BigNumber解决方案
121 0
|
8天前
|
JavaScript 前端开发
如何在 JavaScript 中使用 __proto__ 实现对象的继承?
使用`__proto__`实现对象继承时需要注意原型链的完整性和属性方法的正确继承,避免出现意外的行为和错误。同时,在现代JavaScript中,也可以使用`class`和`extends`关键字来实现更简洁和直观的继承语法,但理解基于`__proto__`的继承方式对于深入理解JavaScript的面向对象编程和原型链机制仍然具有重要意义。
|
12天前
|
Web App开发 JavaScript 前端开发
如何确保 Math 对象的方法在不同的 JavaScript 环境中具有一致的精度?
【10月更文挑战第29天】通过遵循标准和最佳实践、采用固定精度计算、进行全面的测试与验证、避免隐式类型转换以及持续关注和更新等方法,可以在很大程度上确保Math对象的方法在不同的JavaScript环境中具有一致的精度,从而提高代码的可靠性和可移植性。
|
30天前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
504 1
|
11天前
|
前端开发 JavaScript 开发者
除了 Generator 函数,还有哪些 JavaScript 异步编程解决方案?
【10月更文挑战第30天】开发者可以根据具体的项目情况选择合适的方式来处理异步操作,以实现高效、可读和易于维护的代码。
|
12天前
|
JavaScript 前端开发 图形学
JavaScript 中 Math 对象常用方法
【10月更文挑战第29天】JavaScript中的Math对象提供了丰富多样的数学方法,涵盖了基本数学运算、幂运算、开方、随机数生成、极值获取以及三角函数等多个方面,为各种数学相关的计算和处理提供了强大的支持,是JavaScript编程中不可或缺的一部分。
|
16天前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
1月前
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
33 7
|
1月前
|
JSON 前端开发 API
使用微信JS-SDK调用发票接口的完整开发指南
本文介绍了如何使用微信JS-SDK的`chooseInvoiceTitle`接口来调用微信的发票功能。通过微信发票接口,用户可以选择开具个人或单位发票,并获取相关发票信息,如抬头、税号、公司地址等。在文中,详细描述了JS-SDK的初始化、发票接口的调用方式,并提供了完整的代码示例。文章还介绍了如何处理返回的发票信息,帮助开发者快速集成微信发票功能。
73 2
|
1月前
|
前端开发 JavaScript 开发者
JS 异步解决方案的发展历程以及优缺点
本文介绍了JS异步解决方案的发展历程,从回调函数到Promise,再到Async/Await,每种方案的优缺点及应用场景,帮助开发者更好地理解和选择合适的异步处理方式。