IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 一些零散js知识点 -> 正文阅读

[JavaScript知识库]一些零散js知识点

常见问题:
1、String 跟 toString()
2、字符串拼接
3、对象判空
4、js类型判断
5、返回的列表数据进行相同数据整合处理
6、数组list去重
7、求平均数
8、如何复制一个对象

1、String跟toString

let a;
let b = null;

// console.log(a.toString()); // Cannot read property 'toString' of undefined
// console.log(b.toString()); // Cannot read property 'toString' of null
console.log(String(a)); // undefined
console.log(String(b)); // null

在这里插入图片描述
2、字符串拼接

console.log(100 + 10); // 110
console.log(100 + "10"); // '10010'
console.log(true + "10"); // 'true10'

3、对象判空

{
  function isEmptyObject(value) {
    return (
      Object.prototype.toString.call(value) === "[object Object]" &&
      JSON.stringify(value) === "{}"
    );
  }
  console.log(isEmptyObject([]))
}

{
  function isEmpty(obj){
    return ( 
      obj && Object.keys(obj).length === 0 && obj.constructor === Object
    ) 
  }
  console.log('empty---', isEmpty({}))
}

4、类型判断

  // 判断类型
  function toType(obj) {
    return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase();
  }

  console.log('类型----',toType(123) == typeof Number(1)) // true
  console.log('类型2----',toType('string') == typeof 'str') // true

5、返回的列表数据进行相同数据整合处理

  let oldList = [
    { id: 111, date: "05-25", list: [1, 2, 3] },
    { id: 222, date: "05-26", list: [4, 5] },
    { id: 111, date: "05-25", list: [4, 5] }
  ];
  function formatList() {
    return Array.from(
      oldList.reduce((dict, item) => {
        if (dict.has(item.id)) {
          dict.get(item.id).list.push(...item.list);
        } else {
          dict.set(item.id, {
            id: item.id,
            date: item.date,
            list: [...item.list]
          });
        }
        return dict;
      }, new Map())
    ).map(item => ({
      date: item[1].date,
      id: item[1].id,
      list: item[1].list
    }));
  }
  console.log(formatList());
  // [
  //     { id: 111, date: "05-25", list: [1, 2, 3, 4, 5] },
  //     { id: 222, date: "05-26", list: [4, 5] }
  // ];

6、数组list去重

// 数组list去重
  const data = [
    { name: "Kris", age: "24" },
    { name: "Andy", age: "25" },
    { name: "Kitty", age: "25" },
    { name: "Andy", age: "25" },
    { name: "Kitty", age: "25" },
    { name: "Andy", age: "25" },
    { name: "Kitty", age: "25" }
  ];

  let newData = Object.values(
    data.reduce((prev, cur) => {
      let obj = {};
      const { name } = cur;
      obj[name] = cur;
      console.log('pre...', prev)
      console.log('obj...', obj)
      return {
        ...prev,
        ...obj
      };
    }, {})
  );
  console.log(newData)

在这里插入图片描述

7、求平均数

const avg = (...nums) => nums.reduce((pre, value) => pre += value, 0) / (nums.length);

console.log(avg(10, 20, 30))//20
console.log(avg(...[10, 20, 30])) //20

8、如何复制一个对象

1、一种方法是用json.stringify转化成字符串,再parse回去,但是这样无法复制方法在这里插入图片描述
2、使用扩展语法,但是无法复制对象中的对象,只是引用
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 09:51:45  更:2022-05-14 09:52:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:49:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码