关于vue的一些数据处理方式

一、map()

1、案例一:取给定数组的某一字段组成新数组

//后端传来的数据
data = [   //data的数据
	{"txt":"09:00-12:00","codId":"1","flgDel":"0","id":1},
	{"txt":"13:00-16:00","codId":"1","flgDel":"0","id":2},
	{"txt":"18:00-20:00","codId":"1","flgDel":"0","id":3}
]

//前端需要的数据
['09:00-12:00', '13:00-16:00', '18:00-20:00']

//通过map()方法将后端传来的数据改为前端需要的数据
let time = data.map(item =>(item.txt))
console.log(time) 
//控制台输出如下
//['09:00-12:00', '13:00-16:00', '18:00-20:00']

2、案例二:取给定数组的某些字段重命名并组成新数组 

//后端传来的数据
data = [  //新data数据
    {"txt":"拜访","flgDel":"0","id":1},
    {"txt":"面试","flgDel":"0","id":2},
    {"txt":"其他","flgDel":"0","id":3}
]

//前端需要的数据
[{ name: '拜访' }, { name: '面试' }, { name: '其他' }]
//这里看到相比于案例一有字段了,还新命名了
//或者要两个字段的数据
[{ name: '拜访',id:'1' }, { name: '面试',id:'2' }, { name: '其他',id:'3'}]

//通过map()方法改变后端传来的数据
let resion2 = data.map(item =>({
        name: item.txt, 
        id: item.id
    }))
console.log(resion2) 
//控制台输出
//[{ name: '拜访',id:'1' }, { name: '面试',id:'2' }, { name: '其他',id:'3'}]

//或者需要拼接的数据
[{ name: '拜访1' }, { name: '面试2' }, { name: '其他3'}]

//map()方法
let resion3 = data.map(item =>({
        name: item.txt + item.id
    }))
console.log(resion3) 
//控制台输出
//[{ name: '拜访1' }, { name: '面试2' }, { name: '其他3'}]

 二、数组数据修改方法

1、.push()方法可向数组的末尾添加一个或多个元素,并返回新的长度。

data = ['苹果','香蕉','橙子']

this.data.push("石榴");
console.log(data) //打印结果为 苹果,香蕉,橙子,石榴

2、.pop() 方法用于删除数组的最后一个元素。

data = ['苹果','香蕉','橙子']

this.data.pop();
console.log(data) //打印结果为 苹果,香蕉

3、shift() 方法用于把数组的第一个元素从其中删除

data = ['苹果','香蕉','橙子']

this.data.shift();
console.log(data) //打印结果为 '香蕉','橙子'

4、unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

data = ['苹果','香蕉','橙子']

this.data.unshift('石榴');
console.log(data) //打印结果为 '石榴','苹果','香蕉','橙子'

5、splice() 方法向数组中添加或删除项目,然后返回被删除的项目。

splice( index, len, [item]) 用来删除/替换/添加数组内某一个或者几个值(该方法会改变原始数组)。

参数:

index:数组开始下标

len:替换/删除的长度

item:替换的值,删除操作的话item为空

//删除
data = ['1','2','3','4']
this.data.splice(1,1); //删除起始下标为1,长度为1的一个值(len设置1,如果为0,则数组不变)
console.log(data) // ['1','3','4']

//替换
this.arr.splice(1,1,'ttt'); //将下标为1的值替换为ttt
console.log(data) //['1','ttt','3','4']

//添加
this.arr.splice(1,0,'ttt');//在下标为1的值的前面添加一个ttt
console.log(data) //['1','ttt','2','3','4']

6、sort排序

//常规使用
var arry = [9,5,6,7,5,6,3,1,0]
arry.sort() //  [0, 1, 3, 5, 5, 6, 6, 7, 9]

 升序/降序

var points = [
     {name:'KBC',data:9},
     {name:'CBC',data:8},
     {name:'BBC',data:6},
     {name:'EBC',data:1},
     {name:'MBC',data:5},
     {name:'ABC',data:7}
 ];
//升序
 points.sort(function(a, b){
     return a.data - b.data
 })
//降序
 points.sort(function(a, b){
     return b.data - a.data
 })

 升序打印

 

降序打印 

 

7、reverse() 方法用于颠倒数组中元素的顺序。

//翻转前
data=[
        {name:'KBC',data:4},
        {name:'CBC',data:2},
        {name:'BBC',data:6},
        {name:'EBC',data:1},
        {name:'MBC',data:5},
        {name:'ABC',data:3}
    ]

 翻转后

8、.filter()过滤

let data = [
        {name:'KBC',data:4},
        {name:'CBC',data:2},
        {name:'BBC',data:6},
        {name:'EBC',data:1},
        {name:'MBC',data:5},
        {name:'ABC',data:3}
    ]
let json = []
json = data.filter((element)=>{
    return element.data!=4
});
console.log(json)

 打印结果

9、.concat()合并数组

let data = [
    {name:'KBC',data:4},
    {name:'CBC',data:2},
    {name:'BBC',data:6},
    {name:'EBC',data:1},
    {name:'MBC',data:5},
    {name:'ABC',data:3}
]
let json = [
    {name:'ABC',data:9}
]
json = json.concat(data);
console.log(json)

 打印结果

10、.slice()方法从已有的数组中返回选定的元素。

//方法介绍
data.slice(start,end)
data为数组
start是一个从0开始的索引,如果未定义,start 的默认值为 0。如果 start 大于数组的索引范围, slice() 方法将返回一个空数组。此外,start 还可以使用负索引。 slice(-1) 提取数组的最后一个元素。

end 参数是可选的。如果 slice() 函数中只有一个参数,那就是 start。如果省略, slice() 方法从数组的末尾开始提取。
如果end 大于数组的长度,slice() 一直提取到数组的末尾,只是在它被省略的情况下。
end 是提取此索引之前的元素,不包括索引 end 在内。因此,索引的最后一个元素不包含在数组的副本中。例如,slice(1,3) 提取是数组的第二个和第三个元素,即从数组的索引 1 开始,包含索引 1 的值到索引 3 之间的数组,但不包含索引为 3 的元素。

//使用
let arrNumbers = [1,3,5,6,7];
arrNumbers.slice(0, 3)// [ 1, 3, 5 ]

 11、.split()分割字符串变成数组

//分割字符串变成数组
let s= 'www.dod.com.cn'
s.split('.') //以点为分隔符分割字符串
console.log(s) //['www','dod','com',cn']

s.split('.',1) //以点为分隔符分割1次
console.log(s) //['www']

s.split('.',2) //以点为分隔符分割2次
console.log(s) //['www','dod']
//以此类推

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue中进行数据处理和遍历时,可以采取一些优化方法来提高性能和效率。下面是一些常见的优化技巧: 1. 使用v-for的key属性:在使用v-for指令进行列表渲染时,为每个项设置唯一的key属性。这样Vue可以跟踪每个项的变化,提高渲染效率。 2. 避免在模板中进行复杂的计算:尽量避免在模板中进行复杂的计算或方法调用。最好在computed属性中对数据进行处理,然后在模板中直接引用computed属性。 3. 数据分页和懒加载:如果列表数据非常庞大,可以考虑进行数据分页和懒加载。只渲染当前可见区域的数据,减少渲染的负担。 4. 使用Object.freeze():对于不会被修改的数据,可以使用Object.freeze()方法冻结对象,防止不必要的监测和更新操作。 5. 合理使用v-if和v-show:根据具体情况选择使用v-if还是v-show。v-if适用于频繁切换条件的情况,而v-show适用于频繁切换显示/隐藏的情况。 6. 避免过多的watcher:当数据变化时,Vue会触发watcher来更新视图。如果有大量的watcher存在,会降低性能。可以考虑使用computed属性或手动优化数据流,减少watcher的使用。 7. 使用虚拟滚动:对于大型列表,可以考虑使用虚拟滚动技术,只渲染可见区域的内容,降低渲染的负担。 这些是一些常见的Vue数据处理和遍历优化方法,根据具体情况选择适合的优化策略可以提高应用的性能和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值