{ this.randomCards=response.data .concat(response.data) .sort(()=>0.5-Math.random()); }); }, flipCards(cardIndex){ 此.randomCards[cardIndex].url=“1”; }, }, 异步装入(){ 等待此消息。getResults(); }, };,javascript,arrays,vue.js,Javascript,Arrays,Vue.js" /> { this.randomCards=response.data .concat(response.data) .sort(()=>0.5-Math.random()); }); }, flipCards(cardIndex){ 此.randomCards[cardIndex].url=“1”; }, }, 异步装入(){ 等待此消息。getResults(); }, };,javascript,arrays,vue.js,Javascript,Arrays,Vue.js" />

Javascript 更改数组中具有相同值的其他元素 从“axios”导入axios; 导出默认值{ 数据(){ 返回{ selectedCardsId:[], 随机卡片:空, 数据:[], }; }, 计算:{}, 方法:{ getResults(){ axios .get(“https://api.thecatapi.com/v1/images/search", { 参数:{limit:36}, }) 。然后((响应)=>{ this.randomCards=response.data .concat(response.data) .sort(()=>0.5-Math.random()); }); }, flipCards(cardIndex){ 此.randomCards[cardIndex].url=“1”; }, }, 异步装入(){ 等待此消息。getResults(); }, };

Javascript 更改数组中具有相同值的其他元素 从“axios”导入axios; 导出默认值{ 数据(){ 返回{ selectedCardsId:[], 随机卡片:空, 数据:[], }; }, 计算:{}, 方法:{ getResults(){ axios .get(“https://api.thecatapi.com/v1/images/search", { 参数:{limit:36}, }) 。然后((响应)=>{ this.randomCards=response.data .concat(response.data) .sort(()=>0.5-Math.random()); }); }, flipCards(cardIndex){ 此.randomCards[cardIndex].url=“1”; }, }, 异步装入(){ 等待此消息。getResults(); }, };,javascript,arrays,vue.js,Javascript,Arrays,Vue.js,当我加载页面并单击图像时,我看到数组中的两个元素发生了变化,因为它们的值相同,但索引不同。我想那是因为我推了同一个数组。我还尝试了Array.from()和spread操作符。在response.data.concat(response.data)中,您通过引用附加原始对象,因此对一个实例的更改会影响另一个实例,因为它们引用相同的数据 假设数据项都很浅,克隆数据的一种快速方法是将其复制到新对象中: this.randomCards=response.data.concat(response.da

当我加载页面并单击图像时,我看到数组中的两个元素发生了变化,因为它们的值相同,但索引不同。我想那是因为我推了同一个数组。我还尝试了
Array.from()
和spread操作符。

response.data.concat(response.data)
中,您通过引用附加原始对象,因此对一个实例的更改会影响另一个实例,因为它们引用相同的数据

假设数据项都很浅,克隆数据的一种快速方法是将其复制到新对象中:

this.randomCards=response.data.concat(response.data.map(x=>({…x})))