vue中的循环遍历对象、数组和字符串

目录
  • vue循环遍历对象、数组和字符串
    • 1.循环遍历对象
    • 2.循环遍历数组
    • 3.循环遍历字符串
  • vue循环遍历,指令v-for
    • 1.循环遍历
    • 2.v-for遍历数组
    • 3.v-for遍历对象
    • 4.v-for使用中添加key

vue循环遍历对象、数组和字符串

1.循环遍历对象

  • 1.1vue 在html里面循环遍历对象
v-for=" (val, key , i) in dimItemMap" :key="key"
  • val-每一项
  • key -key值
  • i-第几个
<el-table-column prop="score" label="评分" :show-overflow-tooltip="true" align="center">
            <template slot-scope="scope">
              <span>
                <span v-for=" (val, key , i) in scope.row.dimItemMap" :key="key">
                  {{val.score}}//score为键,val.score为值
                </span>
           </span>
       </template>
</el-table-column>
  • 1.2 在js里面forin遍历对象

for…in 循环主要是为了遍历对象而生,不适用于遍历数组

let data = [{ wiun2dvi: 232, wiun3dvi: 55, wiu4ndvi: 33, wiun1dvi: 24432 }];
    data.forEach((item,index)=>{
      for (const key in item) {
        console.log("item[key]",item[key]);//值
        console.log("key",key);//键
      }
    })

2.循环遍历数组

  • 2.1 vue 在html里面循环遍历数组
<el-table-column v-for="item in tableCol" :key="item.id" :prop="item.id" :label="item.name" :show-overflow-tooltip="true" align="center">
      <template slot-scope="scope">
           <span>{{scope.row.dimItemMap?scope.row.dimItemMap[item.id].name:""}}</span>
      </template>
</el-table-column>
<el-table-column prop="score" label="评分" :show-overflow-tooltip="true" align="center">
            <template slot-scope="scope">
              <span>
                <span v-for=" (item, index) in scope.row.dimItemMap" :key="index">
                  {{item.score}}
                </span>
           </span>
       </template>
</el-table-column>
  • 2.2 在js里面for遍历数组
let id = 1524466
for (let i = 0; i < list.length; i++) {
        let a = list[i];
        if (a.id === id) {
          return a.name;
        } 
}
  • 2.3 在js里面forof遍历数组
           let arr = [{
                name: 12,
                hello: "wsdfnioq",
            }, {
                name: 12,
                hello: "wsdfnioq",
            }, {
                name: 12,
                hello: "wsdfnioq",
            }]
            for (const i of arr) {
                console.log("i", i);
            }
//i {name: 12, hello: 'wsdfnioq'}
// i {name: 12, hello: 'wsdfnioq'}
 //i {name: 12, hello: 'wsdfnioq'}
let arr = [
    ['name', "张三"],
    ['地址', '北京'],
    ['手机', '123']
]
for (const [value0, value1] of arr) {
    console.log('k', value0, value1);
}
// k name 张三
// k 地址 北京
// k 手机 123
  • 2.4 forin,不推荐对数组进行遍历
let arr = ["lsadnkol", "klsmvaod", "lpsaojfoas"]
for (const key in arr) {
    console.log("arr", key, typeof key, arr[key]);
}
// 0 string lsadnkol
// 1 string klsmvaod
// 2 string lpsaojfoas
  • 2.5 forEach() 函数遍历数组

①无任何返回,可改变原来数组中的内容

②循环次数:数组的长度

③不支持return,不需要return语句

如下案例:给每个对象中添加age属性

    let forArr = [{name:'tom',sex:'man'},{name:'linda',sex:'woman'},]
     forArr.forEach((item,index) => {
        console.log("forEach循环==index==",index,item);
         item.age = 27
    })
    console.log("forArr==遍历后===",forArr)
   // forArr ---->[{name:'tom',sex:'man',age:27},{name:'linda',sex:'woman',age:27}]

3.循环遍历字符串

  • 3.1for
let s = "abcd"
for (let i = 0; i < s.length; i++) {
      console.log(i, typeof i, s[i]); //i为索引,s[i]为值,typeof i 为number
}
//  0 number a
//  1 number b
//  2 number c
//  3 number d
  • 3.2 forin
let s = "abcd"
for (const key in s) {
    console.log("key", key, typeof key, s[key]); //key为索引,s[key]为值,typeof key 为string
}
// 0 string a
// 1 string b
// 2 string c
// 3 string d
  • 3.3 forof
let s = "abcd"
for (const i of s) {
    console.log("i", i);//i为值
}
// a 
// b 
// c 
// d

vue循环遍历,指令v-for

1.循环遍历

vue的循环遍历用v-for,语法类似于js中的for循环

当我们有一组数据需要进行渲染时,我们就可以使用v-for来完成。

v-for使用格式:

格式为:v-for = item in items

(遍历items中的数据)

2.v-for遍历数组

用v-for指令基于一个数组来渲染一个列表。

v-for 指令使用item in items形式的语法,其中items是源数据数组, 而item则是被迭代的数组元素。

* 如果v-for遍历数组中的数组值
   语法格式:v-for="movie in movies"
   依次从movies中取出movie,并且在元素的内容中,我们可以使用Mustache语法,来使用movie
     <li v-for="movie in movies"> {{movie}} </li>
* 如果v-for遍历数组中的数组值、索引值
     语法格式:v-for=(item, index) in items
      v-for中使用二个参数,即当前项和当前项的索引
      <li v-for="(item, index) in items">{{index}}. {{item}}</li>
<div id="app">
  <ul>
    <li v-for="name in names">{{name}}</li>
  </ul>
   //v-for遍历过程中,遍历数组中值,并显示
  <ul>
    <li v-for="(name,index) in names">{{index}}. {{name}}</li>
  </ul>
   //遍历过程中,遍历数组中值、索引值,并显示
</div>
<script>
  const app = new Vue({
    el:"#app",
    data:{
      names:["刘富楠","科比","詹姆斯","库里"]
    }
  })
</script>

3.v-for遍历对象

  • 1.遍历对象属性 用value值
  • 2.遍历对象属性和属性值 用value值和key
  • 3.遍历对象属性和属性值和索引 用value值、key和index
<div id="app">
//展示出所有信息
  <ul>
    <li >{{info.name}}</li>
    <li >{{info.age}}</li>
    <li >{{info.height}}</li>
  </ul>
  //方法1.一个个写出来
  <ul>
    <li v-for="item in info">{{item}}</li>
  </ul>
  //方法2.用v-for遍历对象的value值。(属性)
  <ul>
    <li v-for="(value,key) in info">{{value}}--{{key}}</li>
  </ul>
  //方法3.用v-for遍历对象的value值和key,value在前面。(属性和属性值)
  <ul>
    <li v-for="(value,key,index) in info">{{value}}--{{key}}--{{index}}</li>
  </ul>
  //方法4.用v-for遍历对象的value值、key和index。(属性和属性值和索引)
</div>
<script>
  const app = new Vue({
    el:"#app",
    data:{
     info:{
        name:"lfn",
        age :18,
        height:180
      }
     }
  })
</script>    

4.v-for使用中添加key

在遍历数组时可以在元素中绑定一个key,key=数组值

绑定key的作用 :主要是为了高效的更新虚拟DOM。(vue内部;让性能高一点)

* 当某一层有很多相同的节点时,也就是列表节点时,我们希望插入一个新的节点,

则Diff算法默认执行起来是比较复杂的。(一个个重新替换)

* 但绑定key后,可以使用key来给每个节点做一个唯一标识

Diff算法就可以正确的识别此节点,找到正确的位置区插入新的节点。

<div id="app">
  <ul>
    <li v-for="item in letters" :key="item">{{item}}</li>
  </ul>
</div>
<script>
  const app = new Vue({
    el:"#app",
    data:{
      letters:["A","B","C","D","E"]
    }
  })
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue遍历对象中的数组取值示例

    前几天小项目,没考虑周全,让后端改接口,改成数组中包含对象中包含数组的形式,后来越琢磨越不对,后台把所有数据放在了一个对象里,我拿弹窗数据不好拿,索性又改了回来,把后端折腾够呛,自己也折腾够呛,发上来,以示警戒 改前拿数据 <div class='your-container'> <div class="sortText"> <div>综合排序</div> <div class="sortHot" @click=

  • vue深度优先遍历多层数组对象方式(相当于多棵树、三级树)

    目录 深度优先遍历多层数组对象 比如树结构是这样的 vue遍历包含数组的对象 请求来拿到后数据格式是下面这种 最终在html中这样遍历 深度优先遍历多层数组对象 这个方法如果是对于下面的三级树的话可以拿到爷爷Id,自己Id,父亲Id:其实如果想要拿到label的话就把data.id换成data.label就行了 function treeFindPath(tree, func, path = []) {         if (!tree) return []         for (cons

  • Vue中对数组和对象进行遍历和修改方式

    目录 对数组和对象进行遍历和修改 1.对数组进行循环 2. 修改数组的时候,不能直接通过下标去增加修改删除 3.对对象进行循环 4.增加对象的时候 修改数组和对象的特殊情况以及修改方法 修改数组的两个特殊情况 修补方法 对数组和对象进行遍历和修改 1.对数组进行循环 v-for进行循环,有两个参数(item,index) 注意:template可以成为占位符,在DOM里面不显示 2. 修改数组的时候,不能直接通过下标去增加修改删除 (1)可以用过push/pop/shift/unshift/sp

  • Vue指令v-for遍历输出JavaScript数组及json对象的常见方式小结

    本文实例讲述了Vue指令v-for遍历输出JavaScript数组及json对象的常见方式.分享给大家供大家参考,具体如下: 定义数据: <script> new Vue({ el:"#test", data:{ message:"infor", list:["a","b","c","d","e"], web:{ "百度":"

  • vue中的循环遍历对象、数组和字符串

    目录 vue循环遍历对象.数组和字符串 1.循环遍历对象 2.循环遍历数组 3.循环遍历字符串 vue循环遍历,指令v-for 1.循环遍历 2.v-for遍历数组 3.v-for遍历对象 4.v-for使用中添加key vue循环遍历对象.数组和字符串 1.循环遍历对象 1.1vue 在html里面循环遍历对象 v-for=" (val, key , i) in dimItemMap" :key="key" val-每一项 key -key值 i-第几个 <

  • 浅析vue中常见循环遍历指令的使用 v-for

    vue中循环遍历使用的指令是v-for 1.v-for遍历数组 (1)value in arr 遍历数组中的元素 (2)(value,index) in arr 遍历数组中的元素和数组下标 运行代码: <body> <div class="box"> <ul> <li v-for="value in arr">{{value}}</li><br> <li v-for="(valu

  • 在vue中v-for循环遍历图片不显示错误的解决方案

    目录 v-for循环遍历图片不显示错误 错误 vue本地图片路径正确,但for循环不显示 经过改正加个require()就可以显示了 v-for循环遍历图片不显示错误 <template> <div class="demo" :style="{width:innerWidth} + 'px' "> <div class="carousel-inner"> <div v-for="(img,i)

  • Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)

    数据结构为数组中包含对象--树形结构,用Vue组件的写法实现以下的效果: 树形列表,缩进显示层级,第5级数据加底色,数据样式显色,点击展开折叠数据.本文为用Vue实现方式,另有一篇为用knockout.js的实现方法. html代码 <div id="table-component-div"> <table-component v-for="item in data1" v-bind:list="item"></ta

  • 使用vue中的v-for遍历二维数组的方法

    如下所示: <table cellpadding="0" cellspacing="0" class="clearfix bigTable" id='downloaddata'> <tr v-for='(item, index) in data'> <template v-for='items in item'> <template v-for='(itemss, indexs) in items' v-

  • vue中的循环对象属性和属性值用法

    v-for除了可以循环数组,还可以循环对象. 例子: <template> <div> <div v-for="(item,i) in obj">{{i}}--{{item}}</div> </div> </template> <script> export default { name: "HelloWorld", data () { return { obj:{ age:1, n

  • React循环遍历渲染数组和对象元素方式

    目录 循环遍历渲染数组和对象元素 遍历渲染数组 遍历渲染对象元素 遍历对象生成dom 项目场景 问题描述 补充 循环遍历渲染数组和对象元素 遍历渲染数组 1.单纯数组 const pureArr = ['a','b','c','d'] //假如我们想将上面的数组利用react渲染成一个列表,代码如下:{ {pureArr.map(item => ( <li key={item}>item</li> ))} 以上代码在codesandbox中运行结果如下: 2. 对象数组 co

  • vue中v-for 循环对象中的属性

    目录 1.循环对象内的值 2.循环对像 3.循环键和值 1.循环对象内的值 <body> <div id="app"> <!-- 循环对象内的值 --> <ul> <li v-for="item in per"> {{item}} </li> </ul> </div> <script src="./js/vue.js"></scrip

  • vue中v-for循环选中点击的元素并对该元素添加样式操作

    相信大家都会遇到这种情况:v-for循环时,我只需要点击到的元素做出相应反应,其他的元素不变:但是往往所有v-for循环出的元素都会变化.如下面的代码:我需要点击到的元素添加一个类样式,其他元素不变,但是这样会导致所有的元素都会变化 html: <div v-for = "(item,index) in items" :class = 'addclass:isactive' @click='onclick()'> <span>{{item.name}}</

  • Vue中的循环及修改差值表达式的方法

    一.Vue中的循环 v-for 常见的4总情况 #第一种 <div v-for="item in items"></div> #第二种 <div v-for="(item, index) in items"></div> #第三种 <div v-for="(val, key) in object"></div> #第四种 <div v-for="(val, n

随机推荐