function testMap() {
// map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
// forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
// value:循环遍历的每一项,基础类型值调用,对象类型引用调用
// index:遍历中的下标
// array:原始数组
// 基础类型Map方法参数为值引用
var baseArr = [1, 2, 3];
console.log("基础类型-前:" + baseArr);//1,2,3
baseArr.map(item => {
item = item + 1;
})
console.log("基础类型-后:" + baseArr);//1,2,3
//基础类型Map方法参数为应用调用
var objectArr = [{name: "name1"}, {name: "name2"}];
console.log("引用类型-前:" + JSON.stringify(objectArr));//[{"name":"name1"},{"name":"name2"}]
var newObjectArr = objectArr.map(item => {
item.name = item.name + "new";
return item;
});
console.log("引用类型-后:" + JSON.stringify(objectArr));//[{"name":"name1new"},{"name":"name2new"}]
console.log("引用类型-新-前:" + JSON.stringify(newObjectArr));//[{"name":"name1new"},{"name":"name2new"}]
newObjectArr.map(item => {
item.name = item.name + "add";
return item;
})
console.log("引用类型-新-后:" + JSON.stringify(newObjectArr));//[{"name":"name1newadd"},{"name":"name2newadd"}]
// 使用foreach,在引用类型的时候也会修改原始数据
objectArr.forEach((item, index, arr) => {
item.name = item.name + "forEach";
})
console.log("引用类型-forEach-后:" + JSON.stringify(objectArr));//[{"name":"name1newaddforEach"},{"name":"name2newaddforEach"}]
}