deployment:{
productId:'产品id',
versionPrefix:'版本前缀',
versionSuffix:'版本后缀'
},
v-for="(item, key, index) in deployment"
item 是值:产品id,版本前缀,版本后缀
key是键:productId,versionPrefix,versionSuffix
index 是下标:0,1,2
deployment:{ productId:'产品id', versionPrefix:'版本前缀', versionSuffix:'版本后缀' },v-for="(item, key, index) in deployment"item 是值:产品id,版本前缀,版本后缀key是键:productId,versionPrefix,versionSuffixindex 是下标:0,1,2...
最近通过对
对象
相关知识的深入学习,我发现对
对象
的
遍历
主要分为两种情况,一种是在页面中
遍历
,另外一种是在方法中
遍历
对象
,现在我们就从这两种情况分别来
遍历
对象
获取
对象
的
key
和value。
情况一:在页面中
遍历
对象
获取
对象
的键和值
定义
一个
变量
obj:object={a:1,b:2,c:3};//用于在页面中调用
在页面中使用v-for
遍历
出
对象
的
key
和value
获取
对象
的
key
和value
面试题:
vue
中的
key
有什么作用?(
key
的内部原理)
1. 虚拟DOM中
key
的作用:
key
是虚拟DOM
对象
的标识,当数据发生变化时,
Vue
会根据【新数据】生成【新的虚拟DOM】,
随后
Vue
进行【新虚拟DOM】与【旧虚拟DOM】的差异比较,比较规则如下:
2.对比规则:
(1).旧虚拟DOM中找到了与新虚拟DOM相同的
key
:
①.若虚拟DOM中内容没变, 直接使用之前的真实DOM!
②.若虚拟DOM中内容变了, 则生成新的真实DOM,随后替换掉页面中之前的真实DOM。
(2).旧虚拟DOM中未找到
<div id="app">
<li v-for="(item,index) in title" :
key
="item.id">{{item.name}}--<input type="text" /></li>
<button typ
关于
key
的作用,官方是这样描述的:
key
的特殊属性主要用在
Vue
的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用
key
,
Vue
会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用
key
,它会基于
key
的变化重新排列元素顺序,并且会移除
key
不存在的元素。
有相同父元素的子元素必须有独特的
key
。重复的
key
会造成渲染错误。
之前不知道在哪里看的文章,一直以为使用
key
是为了就地复用,但是从上面的描述中可以看到
vue
中定义的map
对象
map : { name : 'xxx' }
接口回显map格式的数据 data :{
key
: value}
都可以通过以下方式
拿到
key
和value的值
for(const
key
in map){
console.log("
key
名称是:"+
key
+",
key
的值是:"+map[
key
])
获取
json
对象
的
key
值
我有
一个
json
对象
,我想
获取
每
一个
学生的信息,但是每次
拿到
的数据最外层的
key
值是随学生人数增加而变化的,并不是固定的。
所以我的思路为:先
获取
最外层的
key
,然后根据
key
获取
value。
实现过程如下:
json
对象
:
public static void main(String[] args) {
//字符串
String ss = "{\"test111\": {\"学生信息\": {\"姓名\": \"张三\",\"年龄
v-for="(item, index) in traceDataList"
:
key
="index"
:timestamp="dateFormat(item.Timestamp)"
placement="top">
Object.
key
s()是用于获得由
对象
属性名组成的数组,可以与forEach数组
遍历
相结合使用,这种函数式编程风格比单纯的使用for性能更强,而且相比较来说也简洁,可以有效的提高编码效率。forEach还是非常好用的
代码示例:
getLabeldata(data){
//data就是
对象
数组
data.forEach((item) => {
let dataObj = {}
for(let
key
in obj){
console.log(
key
) //打印每个
key
console.log(obj[
key
]) // 打印每个
Key
对应的值
key
List.push(
key
)
//将提取的键名作为数组的某个属性值
for(let
key
in obj){
key
List(
key
).name =
key
需求:根据主键id来找到对应的数组下标
原本的方法是使用for
循环
遍历
该数组,变量 i 就是下标,问题在于,如果有多重for
循环
,就会导致性能大大下降,数据也容易出错
因此使用map,让数组(原本是list)变成
一个
map集合(
key
-value形式),把主键id当做
key
,下标当做value,一一对应,需要的时候直接使用map.get(
key
)就可以
获取
到对应的value
1.在data{}中先定义
一个
map全局变量
2.在数据回显或有全部数据的地方把数组list变成map
该例子数据结构是[{}],所以有2个for
循环
item也是[{}]结构
这里的item[j].compon