vue与js

1.js中(...)用法  

https://blog.csdn.net/snackpdd/article/details/119388250

 

2.Object.assign的用法

参考博客:Object.assign详解

Object.assign(target, ...sources)    

object.assign()主要用于对象合并,将源对象中的属性复制到目标对象中,他将返回目标对象。

var target = {name:'带你飞'}
var source = {age:18}
var result = Object.assign(target,source)
console.log(result,target===result); // {name: '带你飞', age: 18} true

如果只是想将两个或多个对象的属性合并到一起,不改变原有对象的属性,可以用一个空的对象作为target对象。像下面这样:

var result=Object.assign({},target,source);

 

3.js中的map方法:

参考博客:https://www.cnblogs.com/yuer20180726/p/11193616.html

map() 方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

var array1 = [1,4,9,16];
const map1 = array1.map(x => x *2);
console.log(map1);

打印结果:
Array [2,8,18,32]
var array1 = [1, 4, 9, 16];
const map1 = array1.map(x => {
    if (x == 4) {
        return x * 2;
    }
    return x;
});

console.log(map1);

console:

[1, 8, 9, 16]

 

4.const在for in或者for of中的使用

let arr = [1,2,3,4,5];
for(const value of arr){
	console.log(value);
}

输出结果 1 2 3 4 5
data() {
    return {
      list: [
        {
          name: "帅帅1",
          age: 11
        },
        {
          name: "帅帅2",
          age: 12,
          some: 1
        },
        {
          name: "帅帅3",
          age: 13
        },
        {
          name: "帅帅4",
          age: 14
        },
        {
          name: "帅帅5",
          age: 15
        },
        {
          name: "帅帅6",
          age: 16
        }
      ]
    };
  },
created() {
    for (const s of this.list) { // 可以拿到每一项
      console.log(s.name); // 帅帅1 帅帅2 帅帅3 帅帅4 帅帅5 帅帅6
    }
    for (const s in this.list) { // 只能拿到索引
      console.log(s); // 0 1 2 3 4 5
    }
    for (const s in this.list) {
      console.log(s.name); // undefined undefined undefined undefined undefined undefined
    }
  },

let 和 const 有什么区别:在于const 声明的变量不能重新赋值了,所以如果for-in 或for- of 中使用const 声明了变量( 如key), 循环体中,就不能给key 赋新值了,如果使用let ,那就无所谓了

 

5.slice(0, length)

slice() 方法可从已有的数组中返回选定的元素。string.slice( beginslice [, endSlice] );
下面是参数的详细信息:

beginSlice : 从零开始的索引位置开始提取
endSlice : 从零开始的索引位置结束提取。如果省略,切片中提取的字符串的末尾

注意:作为一个负指数,endSlice表示从字符串末尾的偏移。 string.slice(2,-1)提取第二到最后一个字符,字符串的第三个字符。返回值:
    如果成功的话,切片返回字符串内的正则表达式的索引。否则,返回-1。
例子 
在本例中,我们将创建一个新数组,然后显示从其中选取的元素:
<script type="text/javascript">

var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"

document.write(arr + "<br />")
document.write(arr.slice(2,4) + "<br />")
document.write(arr)

</script>
输出:
George,John,Thomas,James,Adrew,Martin
Thomas,James
George,John,Thomas,James,Adrew,Martin

再比如:'helloworld'.slice(0,5)   -> 'hello'

 

6.判断一个对象是否在一个对象数组中

使用includes()方法,意为存在,存在返回true,不存在返回false,重点是要结合JSON.stringify()序列化为字符串后再判断,以下是示例代码:

var arr = [{"appName":"小何","appId":"1"},{"appName":"小王","appId":"2"}]
  
var obj = {"appName":"小王","appId":"2"}
  
//如果数组arr中不存在字符串JSON.stringify(obj),那就可以添加,反之,则不添加
if(JSON.stringify(arr).includes(JSON.stringify(obj)) === false){
     console.log('不存在')
     arr.push(obj)
}else{
     console.log('已存在')
}

 

7.splice方法

splice() 方法用于添加或删除数组中的元素。这种方法会改变原始数组。

参考:https://www.runoob.com/jsref/jsref-splice.html

//数组中添加新元素
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,0,"Lemon","Kiwi");
输出结果:Banana,Orange,Lemon,Kiwi,Apple,Mango

//如果删除一个元素,则返回一个元素的数组。如果未删除任何元素,则返回空数组
var sites = ["Runoob", "Google", "Taobao"];
sites.splice(2,1);    //删除1个,返回删除元素的数组
输出:["Taobao"]
sites.splice(2,0);    //删除0个,返回空数组
输出:[]

//移除数组的第三个元素,并在数组第三个位置添加新元素:
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2,1,"Lemon","Kiwi");
输出:Banana,Orange,Lemon,Kiwi,Mango

//实例:移除数组中的指定元素
const array = [2, 5, 9];
const index = array.indexOf(5); // 移除元素5
if (index > -1) { // 移除找到的指定元素
  array.splice(index, 1); // 移除元素
}
// array = [2, 9]
document.write(array);

 

8.js数组深度拷贝的四种实现方法

参考:https://www.cnblogs.com/juneling/p/9149969.html

 

 

 

 

 

 

---

posted on 2023-08-18 10:13  有点懒惰的大青年  阅读(2)  评论(0编辑  收藏  举报