今天小编写一下Array数组操作(变异更新、替换)
来个v-for和key小补充,方便了解接下来的课程
Vue和React框架用遍历指令时的key值不建议用index
//变异方法 (mutation method)
var new_array = [11, 22, 33, 44, 55, 66];
//push数组末尾添加---返回值变异后的数组长度
var new_array_push = new_array.push(999);
console.log(new_array_push);
console.log(new_array)
var new_array1 = [11, 22, 33, 44, 55, 66];
//pop数组末尾删除---返回值值为被删除的数组元素
var new_array_pop = new_array1.pop();
console.log(new_array_pop);
console.log(new_array1)
var new_array2 = [11, 22, 33, 44, 55, 66];
//unshift数组开头添加---返回值变异后的数组长度
var new_array_unshift = new_array2.unshift(999);
console.log(new_array_unshift);
console.log(new_array2)
var new_array3 = [11, 22, 33, 44, 55, 66];
//shift数组开头删除---返回值值为被删除的数组元素
var new_array_shift = new_array3.shift();
var new_array_shift = new_array3.shift();
console.log(new_array_shift);
console.log(new_array3)
如下代码例子:
var new_array4 = [11, 22, 33, 44, 55, 66];
//删除splice(start,length)--返回值为被删除的数组元素
var new_array_splice = new_array4.splice(1, 3);
//1、删除:删除(任意个数)---参数1:开始的索引;参数2:删除的长度
console.log(new_array_splice);
//返回被删除的数组元素
console.log(new_array4)
var new_array5 = [11, 22, 33, 44, 55, 66];
//添加splice(start,0,newInfo)--返回值为空数组
var new_array_splice = new_array5.splice(1, 0, 333, 4444);
//2、添加(任意个数): 插入起始位置、0(要删除的项数)和要插入的项。
console.log(new_array_splice);
//返回空;如果要插入多个项,可以再传入第四、第五....任意多个项
console.log(new_array5)
如下图片例子:
返回空;如果要插入多个项,可以再传入第四、第五…任意多个项
**替换:替换(任意个数):即删除和插入数量相等项数的综合应用,可以指向指定位置插入任意数量的项,且同时删除任意数量的项
**
var new_array6 = [11, 22, 33, 44, 55, 66];
console.log('以下是splice替换');
//替换splice(start,length,newInfo)--返回值为被替换的数组
var new_array_splice = new_array6.splice(0, 3, 999, 888, 777);
//3、指定3个指定参数:起始位置、要删除的项数和要插入的任意数量项。
console.log(new_array_splice);
//返回被替换掉的数组元素;注意:插入的项数是不必与删除的项数相等
console.log(new_array6)
如下图片例子:
返回被替换掉的数组元素;注意:插入的项数是不必与删除的项数相等
var new_array7 = [11, 33, 55, 22, 444, 666];
var new_sort = new_array7.sort()
//返回值为排序后的数组
console.log(new_sort)
如下图片例子:
小结
拓展:
var str = 'hello vue'
console.log(str.charCodeAt(6))
//字符串中第一个字符的下标是 0。如果 index 是负数,或大于等于字符串的长度,则 charCodeAt() 返回 NaN。
var str1 = '你看啥看'
console.log(str1.charCodeAt(1))
console.log(str1.charCodeAt(2))
var str_charat = '你看啥看'
//①场景:获取字符串“你看啥看”的你,需要转数组再获取
var str_array = str_charat.split("").join()
console.log(str_array[2])
// ②现在可以直接用charAt() 方法可返回指定位置的字符
console.log(str_charat.charAt(2))
如下图片例子:
①场景:获取字符串“你看啥看”的你,需要转数组再获取
②现在可以直接用charAt() 方法可返回指定位置的字符
小结:
1、charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
2、charAt() 方法可返回指定位置的字符。
3、方法 charCodeAt() 与 charAt()
方法执行的操作相似,只不过前者返回的是位于指定位置的字符的编码,而后者返回的是字符子串。
⑦翻转-reverse,会改变原始数组,返回翻转后的数组
var new_array7 = [11, 22, 33, 44, 55, 66];
console.log('以下是reverse数组反转');
var new_reverse = new_array7.reverse()
//返回值为被翻转后的数组
console.log(new_reverse)
以上即为数组变异更新,接下来结合Vue看下效果。
之前的方法会改变原始数组,有些方法则不会改变。
变异方法 (mutation method),顾名思义,会改变原始数组。
相比之下,也有非变异 (non-mutating method) 方法,例如:filter(), concat() 和 slice() 。这些不会改变原始数组,但总是返回一个新数组。
⑧筛选-filter,不会改变原始数组,返回筛选后的新数组
如下代码例子:
var arr_repeat = ['A','B','A','D','C','D','E','F']
var arr_filter = arr_repeat.filter(function(element,index,self){
return self.indexOf(element) == index
})
console.log(arr_repeat)
console.log(arr_filter)
var arr_concat1 = ['A','B','C','D']
var arr_concat2 = arr_concat1.concat(['E','F','G'])
console.log(arr_concat1)
console.log(arr_concat2)
var arr_slice1 = ['A','B','C','D']
var arr_slice2 = arr_slice1.slice(1,2)
console.log(arr_slice1)
console.log(arr_slice2)
(不想改变原数组,想通过数组副本来实现过滤和排序显示时,可以使用计算属性返回数组副本。)
案例解析:
语法结构:Vue.set(vm.items, indexOfItem, newValue)
也可以使用 vm.$set 实例方法,该方法是全局方法 Vue.set 的一个别名。
语法结构:vm.items.splice(indexOfItem, number, newValue)
限制2:修改数组的长度时,例如:vm.items.length = newLength
【非变异方法】
[字符串数组索引操作]
关于array数组操作(变异更新、替换)今天就说这么多,有问题留言小编,嘿嘿…