首页
学习
活动
专区
圈层
工具
发布

js中复制方法总结

js中有深拷贝和浅拷贝两种复制形式,下面总结一下常用方法,方便平时工作复习使用 一、浅拷贝 1、json对象浅拷贝 var newObj = JSON.parse(JSON.stringify( someObj...*/ 二、深拷贝 1、借助lodash的merge方法 import merge from "lodash/object/merge"; function commentsById(state = {...2 map2.get('b') // 50 尽量保持数据 4、jquery的$.extend()  如果没有第一个参数则为浅拷贝 $.extend(true, {}, obj) 5、JSON对象的方法...var obj2 = JSON.parse(JSON.stringify(obj1)) 熟悉js的人对这两个方法肯定不陌生,利用原生JSON对象的两个可以非常方便地实现对象的深复制。...这种方法也有弊端: 只能复制能用json表示的属性,比如String、Number、Array等,对于不能用json表示的属性例如Function、Regexp等则会丢失 对象的原型链丢失 复制效率较低

5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JS中的数组方法

    JS中的数组方法总结 Array.push() 向数组的末尾添加一个或者多个元素,并返回新的长度 let arr =[1,2,3]; console.log(arr.push(6)) //打印结果为...该方法还可以操作字符串和substring()功能一样 let arr = [1,2,3,4] console.log(arr.slice(1,3)) //打印结果 [2,3] console.log...(arr) //打印结果 [1,2,3,4] Array.concat(arr1,arr2) 连接2个或者更多的数组,并返回连接后的新数组,该方法不会改变原数组 let arr1 = [1,2,3...,arr.sort(fn(second,fitst)),该方法会改变原数组 let arr = [2,1,3] console.log(arr.sort((a,b)=>{ return a-b })...) //结果 2 Array.findIndex() 返回数组中符合条件的第一个元素的下标,若数组中没有元素符合要求则返回-1,不改变原数组 let arr = [1,2,3] console.log

    8K21

    JS 数组中 reduce 方法详解

    一、reduce 方法 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。...也就是说,这个累加器会从第一个累加值开始,不断对累加值和数组中的后续元素调用该累加器,直到数组中的最后一个元素,最后返回得到的累加值。...total = items.reduce(reducer, { sum: 1 }); console.log(total); // {sum: 1111} ③ 多维度的数据叠加 使用 reduce 方法可以完成多维度的数据叠加...如上例中的初始值 {sum: 0},这仅仅是一个维度的操作,如果涉及到了多个属性的叠加,如 {sum: 0,totalInEuros: 0,totalInYen: 0},则需要相应的逻辑进行处理 在下面的方法中...,采用分而治之的方法,即将 reduce 函数第一个参数 callback 封装为一个数组,由数组中的每一个函数单独进行叠加并完成 reduce 操作。

    8K40

    jQuery中,html、val与text的区别与联系

    文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书 本文主要介绍如何使用jQuery中的html(),text()和val()三种方法,用于读取、修改元素的html...1. html方法 不带参数的html方法 在html方法不带参数的情况下,取得的是html内容。...val方法 不带参数的val方法 html页面代码: jquery代码: console.log($('#test').val());...结果:Hello 带参数的val方法 jquery代码: $('#test').val('Test'); 结果: 总结:html方法可以获取...(修改)控件的文本,也可以获取(修改)控件内嵌套的html元素,text方法主要是用来获取控件(修改)的文本,而val方法主要是针对具有value属性的控件,可以获取(修改)控件的value值。

    1.5K40

    js中数组的sort()方法排序

    无参调用: 如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串以便进行比较。...带参调用: 如果想要自己规定排序方式,就需要在sort()方法中提供一个比较函数,该函数要比较两个值即有两个形参a 和 b,函数执行时浏览器会将数组中的元素依次作为实参传入,返回一个用于说明这两个值的相对顺序的数字...sort()方法会根据函数返回值来进行数组元素的交换。返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。 若 a 等于 b,则返回 0。...三.对sort(sortby)方法的理解: sort()方法主要依靠其回调函数来进行排序,回调函数中需要两个参数,在执行sort()方法时会调用回调函数,这时会将调用sort()方法的数组中的元素作为实参两两依次作为回调函数实参传入...以上是关于JS中sort函数的小结,后续遇到新的问题再继续更新!

    8.6K20

    js中call方法的理解和思考

    最近接手前端的工作,对当前项目中自制的js框架下,js的使用产生了非常多的困惑.尤其是js的类,对象,函数,this等等相互之间的关系和转换,以前学过也忘得差不多了,现在基本相当于重新看. js中的函数有可以有好几种解释...Function是个函数对象,也可以认为是个类,所有定义的函数都是Function类的对象,我定义的user也是对象,并且可以调用Function里面的方法 user.call(xxx);当我使用user...调用call方法时,他是作为对象来使用,调用的是Function类里面的call方法,这个方法的作用是调用这个函数并且把传递进去的参数覆盖函数里面的this .第一个参数是覆盖函数里面的this , 剩下的参数是作为这个函数的参数传进去

    1.2K30
    领券