map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
map() 方法按照原始数组元素顺序依次处理元素。map() 不会对空数组进行检测。
① 如果Array里面的值是值类型的而不是对象类型的,map() 就不会改变原始数组 ,
② 如果如果Array里面的值是对象类型的,原数组也会被改变,
③但是如果只是用值里面的值,创建新的对象也不会改变原数组
① 如果Array里面的值是值类型的而不是对象类型的,map() 就不会改变原始数组
let arr=[
{a:"aaa",b:'bbb',"c":'cccc'},
{a:"bbb",b:'ccc',"c":'aaa'},
{a:"ccc",b:'ddd',"c":'eee'}
]//arr里面的值是对象,是引用类型
let brr=arr.map(function(value){
value.d='dddddddddd'
return value
})
console.log(brr);
console.log(arr);//arr被改变
② 如果如果Array里面的值是对象类型的,原数组也会被改变
let arr2=['xxx','zzz']
let brr2=arr2.map(function(value){
value=`lsy${value}`
return value
})
console.log(arr2);//arr2没有被改变,因为它里面的值是值类型
console.log(brr2);
③但是如果只是用值里面的值,创建新的对象也不会改变原数组,因为没有改变他的值
let lessons = [
{title: '媒体查询响应式布局',category: 'css'},
{title: 'FLEX 弹性盒模型',category: 'css'},
{title: 'MYSQL多表查询随意操作',category: 'mysql'}
];
let xz=lessons.map(function(value){
return {
title:value.title,
category:value.category,
click:100
}
})
console.log(lessons);
console.log(xz);