美文网首页
forEach等函数

forEach等函数

作者: c菜鸟 | 来源:发表于2018-04-07 18:31 被阅读0次

如果数组成员是基本类型成员

var arr = [1,2,3,4,5,6];
arr.forEach(function(num){
 if(index == 2) index = 666;
})
console.log(arr); //1,2,3,4,5,6

然后你会发现打印出的数组和原来一样

如果数组的成员是引用类型

var arr = [
{name: 'lzh', age: 20},
{name: 'xt', age: 30},
{name: 'haha', age: 40}
];
arr.forEach(function(obj){
if(obj.name == 'haha') obj.age =666;
})
console.log(arr);
//[ { name: 'lzh', age: 20 },
{ name: 'xt', age: 30 },
{ name: 'haha', age: 666 } ]

你会发现结果改变了,如果我直接改变对象而不是对象的属性,我们再来看一下会发生什么

var arr = [
{name: 'lzh', age: 20},
{name: 'xt', age: 30},
{name: 'haha', age: 40}
];
arr.forEach(function(obj){
if(obj.name == 'haha') obj = {name:'hello', age:50};
})
console.log(arr);
//[ { name: 'lzh', age: 20 },
{ name: 'xt', age: 30 },
{ name: 'haha', age: 40 } ]

你会发现你直接改变对象但是数组并没有改变,从这我们可以看出只要数组成员的地址是不能改变的,我们给基本类型和引用类型本身赋值,本质上来说都是地址改变了,我们改变属性你会发现,我们可以改变

相关文章

网友评论

      本文标题:forEach等函数

      本文链接:https://www.haomeiwen.com/subject/nugyhftx.html