首页 > 其他分享 >vue中的循环遍历对象、数组和字符串

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

时间:2023-10-09 14:23:06浏览次数:33  
标签:key index 遍历 name item vue 数组 字符串

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}]

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>

 

 

标签:key,index,遍历,name,item,vue,数组,字符串
From: https://www.cnblogs.com/xiaolucky/p/17751614.html

相关文章

  • jquery之each遍历
    jQuery的each和原生的JavaScript方法forEach原生的JavaScript方法forEach是EcmaScript5提供的不兼容IE8jQuery的each由jQuery这个第三方库提供jQuery2以下的版本是兼容IE8的它的each方法主要用来遍历jQuery实例对象(伪数组)同时它也可以作为......
  • 22-Vue组件化编程
    使用传统的方式编写应用传统的方式,一般离不开前端的三大件(HTML、CSS、JS)HTML:HTML是超文本标记语言(HyperTextMarkupLanguage)是用来描述网页的一种语言,负责网页的架构CSS:CSS是一种层叠样式表(级联样式表、样式表),是⼀种标记语⾔,负责网页的样式,美化JavaScript(JS):JS是运行在客户......
  • Vue学习笔记(七):绑定css样式
      1绑定class样式¶vue为HTML绑定css中的class样式是通过v-bind实现的。  1.1绑定单个class¶把需要绑定的样式class名赋值给一遍变量,然后通过变量v-bind绑定class属性,绑定后的class并不会覆盖原来的class属性,而是与原来的class进行叠加。如下所示,d......
  • python 递归遍历目录筛选特定文件名的文件
    #!/usr/bin/pythonimportosimportsyslist=[]folder_path="/root"defsearch_files(folder_path):search_string="测试"forroot,dirs,filesinos.walk(folder_path):fornameinfiles:ifsearch_strin......
  • Postgresql 截取字符串
    截取字符串一般用substring就够用了。对于有些长度不定的就没法用这个函数了,但还是有规律的,可以某个字符分割。  这时需要​​split_part​​函数,如:--url一共3个-,字符串被分成4部分,取最后一部分,那最后一个参数就是4selectsplit_part(fs.cdn_url,'-',4)fromfile......
  • js数组转字符串方法(转)
    JavaScript 允许数组与字符串之间相互转换。其中Array 方法对象定义了3 个方法,可以把数组转换为字符串,如表所示。数组方法说明toString()将数组转换成一个字符串toLocalString()把数组转换成本地约定的字符串join()将数组元素连接起来以构建一个字符串......
  • vue项目使用lodash节流防抖函数问题与解决
    背景在lodash函数工具库中,防抖_.debounce和节流_.throttle函数在一些频繁触发的事件中比较常用。防抖函数_.debounce(func,[wait=0],[options=])创建一个debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。参数func (Function):要防抖......
  • vue $refs 获取的结果有时候是数组
    在工作的时候要从接口读取数据,生成一个动态的表单首先做的就是绑定ref然后使用const{proxy}=getCurrentInstance();来读取ref,看了半天数据怎么不对,控制台打印后,发现是一个数组后来观察到只要是使用v-for生成的获取ref时,即使没有重复,结果也是数组,可能是作者在v-for中为了......
  • C++ 使用getline()从文件中读取一行字符串
    我们知道,getline()方法定义在istream类中,而fstream和ifstream类继承自istream类,因此fstream和ifstream的类对象可以调用getline()成员方法。当文件流对象调用getline()方法时,该方法的功能就变成了从指定文件中读取一行字符串。该方法有以下2种语法格式:istream&......
  • App.vue 的组成部分
    组件化:页面可拆分成一个个组件,每个组件有着独立的结构、样式、行为组件分类:普通组件、根组件根组件:整个应用最上层的组件,包裹所有普通小组件一个根组件 App.vue,包含三个部分 App.vue文件(单文件组件)的三个组成部分:结构、样式、行为结构通过template标签提供,行为通过scr......