对象
Object.assign() 将多个对象混合起来
var obj1 = {
a: 1,
b: 2
}
var obj2 = {
b: 3,
c: 4
}
var obj3 = {
d: 5,
e: 6
}
Object.assign(obj1, obj2, obj3)
console.log(obj1)
打印结果为
{ a: 1, b: 3, c: 4, d: 5, e: 6 }
只改变obj1 不改变其他数组
下面的方法可以返回新的数组
var obj4 = Object.assign({}, obj1, obj2, obj3)
console.log(Object.getPrototypeOf(obj4));
获取一个对象的隐式原型
console.log(Object.setPrototypeOf(obj4,prototype));
设置一个对象的隐式原型
Object.create()创建空原型的对象
Object.create(target)返回一个对象,已target做为隐式原型
数组
Array.prototype.concat() 将多个数组拼接成一个
var nums1 = [1, 2, 3];
var nums2 = [4, 5, 6];
var nums3 = [7, 8, 9];
console.log(nums1.concat(nums2, nums3));
打印结果为[1,2,3,4,5,6,7,8,9]
Array.prototype.includes() 判断数组中是否包含某个值
var arr = [123, 456, 789]
console.log(arr.includes(123));
打印结果为true
Array.prototype.indexOf() 某个值在数组中第一次出现的下标
console.log(arr.indexOf(123));
打印结果为0
Array.prototype.lastIndexOf() 某个值在数组中最后一次出现的下标
var arr = [123, 456, 789 ,123]
console.log(arr.lastIndexOf(123));
打印结果为3
Array.prototype.join() 把数组的每一项用指定字符串链接起来,返回一个新的字符串
var arr = [123, 456, 789, 123]
console.log(arr.join(","));
打印结果为"123,456,789,123"
Array.prototype.push() 向数组最后添加一项
var arr = [123, 456, 789]
arr.push(999)
console.log(arr);
打印结果为[ 123, 456, 789, 999 ]
Array.prototype.shift() 向数组开头添加一项
Array.prototype.ppo() 删除数组最后一项
Array.prototype.shift() 删除数组第一项
代码道理同上
Array.prototype.splice()删除,修改,插入任何位置的值
Array.prototype.reverse()将数组颠倒
Array.prototype.sort() 数组排序,传值为函数
var arr = [1, 11, 7, 20]
arr.sort(function (a, b) {
return a - b
})
console.log(arr);
打印结果为[ 1, 7, 11, 20 ]
arr.sort(function () {
return Math.random() - 0.5
})
这种方法可以对数组进行随机排序
Array.prototype.slice() 对数组进行切割
返回一个新数组 两个参数起始下标和结束下标,如果不传第二个参数会切割到结尾,
如果不传值,或者值为0,复制出一个地址不用的新数组
var arr = [1, 11, 7, 20]
var arr1 = arr.slice(0, 2)
打印结果为[ 1, 11 ]
slice 可以将伪数组转为真数组
var arr = {
a: 1,
b: 2,
length: 2
}
var arr2 = Array.prototype.slice.call(arr)