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

1、对象key的遍历,及其他操作

场景1:将obj对象的所有属性值为 null 的改为'------',放入新newObj

场景条件

obj = {  
  name: 'John Doe',  
  age: null,  
  address: '1234 Street',  
  phone: null  
}

场景结果

newObj = {  
  name: 'John Doe',  
  age: '------',  
  address: '1234 Street',  
  phone: '------'
}

代码示例1:(该方法会修改原始对象)

function replaceNullWithDash(obj) {  
  // 使用Object.keys()获取对象的所有键  
  Object.keys(obj).forEach(key => {  
    // 检查当前键对应的值是否为null  
    if (obj[key] === null) {  
      // 如果是,则将其更改为'------'  
      obj[key] = '------';  
    }  
  });  
  return obj; 
}  
  
// 示例对象  
let obj = {  
  name: 'John Doe',  
  age: null,  
  address: '1234 Street',  
  phone: null  
};  
  
// 调用函数  
newObj = replaceNullWithDash(obj);
console.log(newObj);

代码示例2:(该方法会创建一个新对象,原对象保持不变)

function replaceNullWithDashAndReturnNew(obj) {  
  // 使用扩展运算符(...)和Object.fromEntries()来创建一个新对象  
  return Object.fromEntries(  
    Object.entries(obj).map(([key, value]) => [key, value === null ? '------' : value])  
  );  
}  
  
// 示例对象  
let obj = {  
  name: 'John Doe',  
  age: null,  
  address: '1234 Street',  
  phone: null  
};  
  
// 调用函数并获取新对象  
let newObj = replaceNullWithDashAndReturnNew(obj);   
console.log(newObj);  

方法解析

  • Object.entries()方法:获取对象的键值对数组
  • map()方法:遍历数组,将值为null的项的值更改为'------'
  • Object.fromEntries()方法:将键值对数组转换回对象

2、判断数组对象的深度

场景2:深度遍历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

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue.js 是一种流行的 JavaScript 前端框架,用于构建交互式的单页面应用程序 (SPA)。它以简洁、易用和灵活的特点而受到开发者的喜爱。下面是关于 Vue.js 的简要介绍、使用场景案例: 1. 简要介绍:Vue.js 是一个渐进式框架,它通过使用组件化开发和响应式数据绑定的方式,使构建交互式前端应用程序更加简单和高效。Vue.js 的核心库非常轻量级,可以逐步引入其他功能模块,例如路由、状态管理等,以满足不同项目的需求。 2. 使用场景:Vue.js 适用于各种前端开发场景,包括单页面应用程序 (SPA)、多页面应用程序、移动应用程序、桌面应用程序等。由于 Vue.js 的易用性和灵活性,它被广泛用于构建各种规模的项目,从小型个人网站到大型企业级应用程序。 3. 案例:以下是一些使用 Vue.js 的著名案例实际应用场景: - Alibaba(阿里巴巴):Vue.js 在阿里巴巴旗下的一些项目中得到广泛应用,如支付宝、淘宝等。 - Xiaomi(小米):小米的官方网站和一些移动应用程序中使用了 Vue.js。 - Bilibili(哔哩哔哩):Vue.js 是 Bilibili 弹幕视频网站的核心技术之一。 - GitLab:GitLab 是一个基于 Vue.js 构建的开源代码托管平台。 - Laravel:Laravel 是一个流行的 PHP Web 开发框架,它的后台管理界面使用了 Vue.js。 这些案例展示了 Vue.js 在不同领域和项目中的广泛应用。通过其简洁的语法和丰富的功能,Vue.js 提供了一种高效、灵活和可维护的前端开发方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五秒法则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值