"Array.prototype.fill()使用对象传递引用而非创建新实例"
P粉682987577
P粉682987577 2023-08-23 09:15:17
[JavaScript讨论组]

我在玩一下,试图实例化一个长度为x的新数组,其中该数组的所有元素都初始化为值y

var arr = new Array(x).fill(y);

如果y的值不是对象,那么这个方法可以很好地工作。 也就是说,如果y是一个对象,那么以下条件成立:

var arr = new Array(2).fill({});
arr[0] === arr[1]; //结果为true;
arr[0].test = 'string';
arr[1].test === 'string'; //结果也为true;

有没有办法在使用fill函数时声明每个元素都应该创建一个新对象?还是我应该将其转换为循环?

P粉682987577
P粉682987577

全部回复(1)
P粉461599845

您可以首先使用任何值(例如undefined)填充数组,然后您就可以使用map

var arr = new Array(2).fill().map(u => ({}));
var arr = new Array(2).fill().map(Object);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号