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
---