为什么下面的对象只打印为最后一个元素,而不打印为整个对象?我认为它会打印为{ ID:1, ID:2, ID:3, }

https://codepen.io/kiggs1881/pen/JjwGKQG

<template>
  <div id="app">
   <h2>{{images}}</h2>
  </div>
</template>

 <script>
import {ref, onMounted, watch} from 'vue'
export default {
 setup(){
   const images = ref({})

 onMounted(()=>{
  images.value = {
    id: 1,
    id: 2,
    id: 3,
  };
  
})

return {
  images
   }
  }
};

推荐答案

您提供的对象只打印最后一个元素的原因是对象键必须是唯一的.在定义以下内容时:

{
  id: 1,
  id: 2,
  id: 3,
}

它等同于:

{
  id: 3,
}

设置具有相同名称的多个关键点时,只有最后一个关键点保留在对象中.前面的内容将被覆盖.

如果您打算为id保留多个值,则可能需要一个数组:

images.value = [
  {id: 1},
  {id: 2},
  {id: 3},
];

然后,要显示它们,您可以在模板中使用循环:

<template>
  <div id="app">
    <h2 v-for="image in images" :key="image.id">{{ image.id }}</h2>
  </div>
</template>

Javascript相关问答推荐

React Native平面列表自动滚动

如何从JSON数组添加Google Maps标记—或者如何为数组添加参数到标记构造器

为什么这个JS模块在TypeScript中使用默认属性导入?""

如何粗体匹配的字母时输入搜索框使用javascript?

Google maps API通过API返回ZERO_RESULTS,以获得方向请求,但适用于Google maps

S文本内容和值不必要的不同

在forEach循环中获取目标而不是父对象的属性

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

如何在Java脚本中对列表中的特定元素进行排序?

在不扭曲纹理的情况下在顶点着色器中旋转UV

为列表中的项目设置动画

将相关数据组合到两个不同的数组中

ngOnChanges仅在第二次调用时才触发

bootstrap S JS赢得了REACT中的函数/加载

有没有办法在R中创建一张具有多个色标的热图?

在Press Reaction本机和EXPO av上播放单个文件

Firefox的绝对定位没有达到预期效果

由于http.get,*ngIf的延迟很大

与find()方法一起使用时,Mongoose中的$or运算符没有提供所有必需的数据

鼠标进入,每秒将图像大小减小5%