react 数组引用和值
单个赋值,
var j=9
i=j
重新申请了一个新空间,得到了2个空间。
所以i和j是独立的
修改i,不会影响到j
数组赋值
copy_arr1=arr1
并没有重新申请新空间,
copy_arr1只是对原来的数组,做了引用。
所以修改copy_arr1,还是修改了原来的数组。
那么,数组复制该怎么做呢?
可以重新申请一个空间。
然后把原来的值,做单个的复制。
代码
<script type="text/babel">
const element="hello";
var i=2;
var arr={squares:[1,2,3]};
function Test(){
var copy_arr={squares:new Array(3)};
copy_arr.squares[0]=arr.squares[0];
copy_arr.squares[1]=arr.squares[1];
copy_arr.squares[2]=arr.squares[2];
copy_arr.squares[0]=4;
return (<div>{copy_arr.squares.join(',')}</div>);
}
ReactDOM.render(
<Test />,
document.getElementById('example')
);
</script>
用循环优化代码,
1,把重复的语句,用循环组织,可以简洁一点。
2,不得不用循环。当数组元素个数是100,1000,大数字的时候,如果一个一个写,累死。
不得不用循环。
copy_arr.squares[0]=arr.squares[0];
copy_arr.squares[1]=arr.squares[1];
copy_arr.squares[2]=arr.squares[2];
for(var i=0;i<arr.squares.length;i++)
copy_arr.squares[i]=arr.squares[i];