用相同的值更改数组中的其他元素

marwan130
<template>
  <el-row>
    <el-col :span="24">
      <el-image
        v-for="(card, index) in randomCards"
        :key="card.indexOf"
        :src="card.url"
        :id="(card.id = index)"
        fit="fill"
        @click="flipCards(index)"
      ></el-image>
    </el-col>
  </el-row>
</template>

<script>
import axios from "axios";
export default {
  data() {
    return {
      selectedCardsId: [],
      randomCards: null,
      data: [],
    };
  },
  computed: {},
  methods: {
    getResults() {
      axios
        .get("https://api.thecatapi.com/v1/images/search", {
          params: { limit: 36 },
        })
        .then((response) => {
          this.randomCards = response.data
            .concat(response.data)
            .sort(() => 0.5 - Math.random());
        });
    },
    flipCards(cardIndex) {
      this.randomCards[cardIndex].url = "1";
    },
  },
  async mounted() {
    await this.getResults();
  },
};
</script>

当我加载页面并单击图像时,我看到了数组中两个元素的变化,因为它们具有相同的值但具有不同的索引。我认为那是因为我推送了相同的数组。我也试过Array.from()和传播算子。

东尼19

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

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

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

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据其他行中的值更改数据框

基于其他数组js更改数组中的值

如何根据r中的其他值更改数据框中的值?

根据其他列的值更改数据框的列中的值(值来自列表)

根据其他两个值更改数据框中的多个值

用其他数组中的值替换数组中的元素

如何根据R中其他列中的值更改更改列元素

替换数组中的特定元素也更改其他元素

从其他数组中的值更新对象

按步进值更改数组中的组号

SQL-根据相同组和不同行中的其他列值更改列值

如果javascript / html中的其他一些值更改,如何更改值的数组?

Python更改数组中的元素

在反应中更改数组元素属性

javascript更改数组中的元素

无法更改数组中的单个元素

如何使用 JS 修改数组中的所有其他元素?

用Python中的其他值更新numpy数组中的值

如何更改数组中的所有其他值(Java)

为数组中的元素赋值会更改其他变量

更改数组中的一个元素会更改数组中的所有元素

通过另一个数组的值更改数组元素的直接值

在Java中更改数组中的数组元素

Javascript:为什么实例可以更改数组,但不能更改原型中定义的其他属性?

如何使用jquery捕获td元素中的值,并根据捕获的td的值更改其他td元素的背景色?

用其他相同的值替换数组中的所有相同值

如何从数组中获取匹配元素并更改数组对象?

用其他表中的值更新表

更改数组元素无效