首页 > 其他分享 >js各种实际场景的使用案例合集(全)

js各种实际场景的使用案例合集(全)

时间:2024-07-31 17:53:17浏览次数:11  
标签:arr 场景 name js item depth 数组 合集 children

1、两个数组的交集

场景1:找出两个数组arr1的activityProdId值存在在arr2中,如果存在则放入新数组arr3中

场景条件

arr1=[

        { activityProdId:23, name:"06", },

        { activityProdId:56, name:"07", },

        { activityProdId:78, name:"08", }

]

arr2=[26,23,34,3,8,78,4,7,75]

场景结果

arr3=[23,78]

代码示例

let arr1 = [  
  {  
    activityProdId: 23,  
    name: "06",  
  },  
  {  
    activityProdId: 56,  
    name: "07",  
  },  
  {  
    activityProdId: 78,  
    name: "08",  
  },  
];  
  
let arr2 = [26, 23, 34, 3, 8, 78, 4, 7, 75];  
let arr3 = [];  
  
// 遍历arr1  
arr1.forEach(item => {  
  // 检查arr2是否包含当前元素的activityProdId  
  if (arr2.includes(item.activityProdId)) {  
    // 如果包含,则将该activityProdId添加到arr3中  
    arr3.push(item.activityProdId);  
  }  
});  
  
console.log(arr3); // 输出: [23, 78]

场景2:遍历checkGroup数组,当值存在与allTagsList数组的任何一个对象的属性name值一样时,则将值对应的对象属性tagId值存入一个新数组arr中

场景条件:

allTagsList = [

        { name:'dfbg', tagId:456, },

        { name:'bn', tagId:75, },

        { name:'nh', tagId:76, }

]

checkGroup = ['nh','dfbg']

场景结果:arr = [76,456]

代码示例:

let allTagsList = [  
    {  
        name: 'dfbg',  
        tagId: 456,  
    },  
    {  
        name: 'bn',  
        tagId: 75,  
    },  
    {  
        name: 'nh',  
        tagId: 76,  
    },  
];  
  
let checkGroup = ['nh', 'dfbg'];  
  
// 使用 filter() 和 some() 来实现  
let arr = allTagsList.filter(item => 
    checkGroup.some(name => item.name === name)
).map(item => item.tagId);  
  
console.log(arr); // 输出: [76, 456]

方法解析:

  • filter()方法:用于创建一个新数组,测试 allTagsList 中的每个对象,是否满足某个条件
  • some()方法:检查 filter() 中的每个对象与 checkGroup 数组中是否至少有一个元素与当前对象的name属性相等。如果some()返回true(即至少找到一个匹配的name),则 filter() 会保留这个对象
  • map()方法:遍历 filter() 返回的数组,并提取每个对象的 tagId 属性,放入一个新的数组arr

2、递归遍历数组,对指定层级对象进行特定操作

场景1:深度遍历arr数组,当存在对象depth属性的值为3时,立即return出去

场景条件

arr=[

        { id:1, depth:1, children:[ { depth:2, children:null }, { depth:2, children:{ depth:3, children:null } }, ] },

        { id:2 depth:1, children:[ { depth:2, children:{ depth:3, children:null }, }, { depth:2, children:null }, ] }

]

代码示例

function findDepthThree(arr) {  
  for (let item of arr) {  
    if (item.depth === 3) {  
      return true; // 立即返回true,因为找到了depth为3的对象  
    }  
    if (item.children && Array.isArray(item.children)) {  
      // 递归检查children数组中的每个元素  
      if (findDepthThree(item.children)) {  
        return true; // 如果在children中找到了depth为3的对象,则立即返回true  
      }  
    }  
  }  
  return false; // 如果没有找到depth为3的对象,则返回false  
}  
  
// 示例数组  
const arr = [  
  {  
    id: 1,  
    depth: 1,  
    children: [  
      { depth: 2, children: null },  
      {  
        depth: 2,  
        children: [
          {
            depth: 3,  
            children: null  
          }
        ]
      },  
    ]  
  },  
  {  
    id: 2, // 注意:这里缺少了一个逗号  
    depth: 1,  
    children: [  
      {  
        depth: 2,  
        children: [{  
          depth: 3,  
          children: null  
        }],  
      },  
      { depth: 2, children: null },  
    ]  
  },  
];  
// 调用函数  
console.log(findDepthThree(arr));//true

场景2:遍历arr数组,将depth属性值为2的对象的id等于指定变量ids1的对象插入新数组newArr2;将depth属性值为3的对象id等于指定变量ids2的对象插入新数组newArr3

场景条件:

arr=[

{ name:'sfvg&

标签:arr,场景,name,js,item,depth,数组,合集,children
From: https://blog.csdn.net/qq_51478745/article/details/140813545

相关文章

  • JSON格式说明
    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-2623rdEdition-December1999的一个子集。JSON的数据类型主要包括以下几种:对象(Object):在JSON中,对象是一个无序......
  • echarts 地图 geojson 街道级别获取
    echarts地图geojson街道级别获取最近开发遇到需求是要制作echarts地图,原本制作echarts地图也并不难,但是偏偏我要制作街道级别的地图,难就难在如何获取geojson的数据。获取渠道目前遇到的最多的获取geojson的方法是通过阿里的地理工具去获取,https://datav.aliyun.com/por......
  • JS逆向 (简单)
    在该网站输入账户123和密码123F12抓包发生密码被加密成74ce2ba17b2c218246e778fb5e895c95,并且密码字段为pwd点击搜索搜索pwd,并且查看是哪里给他加密的发现此处有用到加密,但不是pwd是hiddenPwd,在这个周围看看发现他把hiddenPwd的值赋值给pwd查看里面password的值......
  • 掩码语言模型MLM有什么应用场景
    上一文介绍了《什么是掩码模型MLM》,本文继续讲讲它的应用场景。MLM(MaskedLanguageModel,掩码语言模型)在自然语言处理(NLP)领域有着广泛的应用场景。以下是MLM的一些主要应用场景:1.预训练语言模型MLM是许多预训练语言模型(如BERT、RoBERTa、ALBERT等)的核心技术之一。通过在大......
  • 微信小程序nodejs+vue+uniapp学生选课系统dmkas源码lw包安装
    系统分为学生和管理员,教师三个角色小程序端运行软件 微信开发者工具/hbuiderxuni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。基于微信小程序学生选课系统后台是本系统分为学生,教师,管理员三个角色,学生的主要功能是查看课程介......
  • Medium.com 无效的 Json?
    我试图从Medium.com获取最新的帖子,例如,我转到这里https://medium.com/circle-blog/latest?format=json但是当我复制并粘贴整个内容时JSON到JSONEditorOnline.org时,我收到错误消息Error:Parseerroronline1:])}while(1);</x>{"su^Expecting'STRING',......
  • 在Vue.js中,this.$parent 表示当前组件实例的直接父组件实例
    在Vue.js中,this.$parent表示当前组件实例的直接父组件实例。它允许你从子组件中访问父组件中定义的属性、方法和数据。举个例子,如果你有一个子组件,并且想要从中访问父组件中定义的方法或属性,你可以使用this.$parent来引用它。以下是一个简单的示例来说明这一点:<!--ParentCo......
  • 学习Java的日子 Day60 JSP
    JSP核心技术1.什么是JSPJSP和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是ServletJSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据......
  • 基于 ChatGPT 的聊天软件合集打包分享
     「基于ChatGPT的聊天软件合集打包」链接:https://pan.quark.cn/s/ef1f5e9c48e4BotGem(原名AMA)官网:https://botgem.com/比较简单,有指令库;支持openai/AzureChatBox项目地址:https://github.com/Bin-Huang/chatbox说明文档:https://github.com/Bin-Huang/chatbox/blob/......
  • 如何在 FastAPI 中同时接收 JSON 数据和文件上传
    我正在开发一个FastAPI项目,我需要在同一请求中接收JSON数据和文件上传。具体来说,我需要在JSON数据中传递整数数组,同时上传文件。这是我的请求正文的样子:标题(字符串)描述(字符串)评论(字符串)due_date(日期)优先级(字符串)signed_to(数组)整......