<script type="text/javascript">
var o ={a:1}
var o1 ={b:2}
var o2 ={c:3}
//Object.assign(target,要合并的对象1,要合并的对象2)
var a1 = Object.assign(o,o1,o2);// = Object.assign({}, o, o1,o2) 赋值
console.log(a1,'a1') // {a: 1, b: 2, c: 3} 'a1'
Object.assign(o,o1,o2) //默认
console.log(o,'o');//{a: 1, b: 2, c: 3} 'o'
var newo = Object.assign({}, o, o1,o2)
console.log(newo,'o');//{a: 1, b: 2, c: 3} 'o'
function fn1(opts){
let defaults = {
a:'mr1',
b:'mr2',
c:'mr3'
}
Object.assign(defaults,opts);
console.log(defaults)
}
fn1({
a:1,
b:2,
c:3
})
/*ES5 的方法:map()、filter()、reduce()、every()、some()
ES5 的方法:find()、findIndex()
*/
//arr.map() 映射
var arr = [1,2,3];//数组的每一项都乘以2,放在新数组
var newArr = arr.map(function(item,index){ //对每项处理放在新数组
console.log(item,index);
return item*2;
})
console.log(newArr)//2,4,6
list.map(item =>item*2)
list.filter((item,index)=>item*2) //无{}不要return
list.filter((item,index)=>{return item*2}) //有{}要return
list.forEach(item =>item*2)
list.forEach(item=>{item*2}) //forEach {}里面不加return 里面为运算 return 写在{}外面
list.forEach((item,index) =>{item*2})
//arr.filter() 过滤、选择
var arr2 = [1,2,3,4,5,6]
var newArr2 = arr2.filter(function(item,index){
console.log(item,index);
return true;//条件成立
return false;
return item % 2 === 0;//条件
})
console.log(newArr2);
//arr.find() 只找符合条件的第一个
var arr3 = [1,2,3,4,5,6,7,8,9]
var newAarr3 = arr3.find(function(item,index){
console.log(item,index);
return item > 6;
});
console.log(newAarr3)//7
//arr.findIndex() 只找符合条件的第一个元素的索引位置
var arr4 = [5,12,33,44]
var newArr4 = arr4.findIndex(function(item,index){
return item > 12;
});
console.log(newArr4)//2
//arr.reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右依次)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。
var arr5 = [5,12,33,44]
var newArr5 = arr5.reduce(function(item,index){
return item+index;
});
console.log(newArr5)//94
//arr.every()方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。every() 方法使用指定函数检测数组中的所有元素:如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。
var arr6 = [5,6,7,8]
var newArr6 = arr6.every(function(item,index){
return item > 6;
});
console.log(newArr6)//false
/*arr.some()
some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。
some() 方法会依次执行数组的每个元素:
如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
如果没有满足条件的元素,则返回false。*/
var arr7 = [11,12,13,15]
var newArr7 = arr7.every(function(item,index){
return item < 12;
});
console.log(newArr7)//true
</script>
|