1. 通过ES6新增数据类型Set的特性Array.prototype.unique = function() {return [...new Set(this)]; };2. 通过for循环+indexOf过滤,并用新开辟的存储空间保存合适的数组元素Array.prototype.unique = function() {const result = [];for (let i = 0, len = this.length; i < len; i++) {// 或 result.includes(this[i]) --> return true/falseif (result.indexOf(this[i]) === -1) result.push(this[i]);}return result; };3. 借...
问题: 在数组尾部添加元素的方法是____,弹出数组最后一个元素的方法是____。 答案: push()和pop() 延伸: 参考链接为https://www.w3school.com.cn/jsref/jsref_obj_array.asp1. 尾部增删元素的方法push/pop对应于头部增删元素的方法unshift/shift 2. 数组操作的万能方法是splice,它可以从指定的索引开始删除若干元素,然后再从该位置添加若干元素 var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle']; // 从...
1.Array.from() 2.slice() 3.扩展运算符 4.Object.assign() 5.concat() var oldArr = [1,2,3,[4,5,6],7] // 可以使用以上5中方法进行拷贝,但是都会出现同一个问题,就是对内层数组 // 的拷贝仅仅拷贝了内存地址,并没有给予新的内存地址进行保存 // 比如: var newArr = oldArr.slice() oldArr[0] = 10 console.log(oldArr[0]) // 10 console.log(newArr[0]) // 1oldArr[3][0] = 20 console.log(oldArr[3][0]) // 20 console.log(n...
1. js数组方法归纳总结 1.1 操作使原数组改变 1.1.1 数组的增 1. unshift()方法 unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度(该方法修改原有数组**)** 语法:arr.unshift(element1,...,elementN) 返回length属性值 let arr = [4,5,6]; let length = arr.unshift(1,2,3); // 3 console.log(arr); // [1, 2, 3, 4, 5, 6]arr = [4,5,6]; // 重置数组 arr.unshift(1); arr.unshift(2); arr.unshift(3); con...
JS数组方法reduce()=map()+filter() 一、先上用法 let list= [{userName:"admin",roleNames:"系统管理员"},{userName:"user1",roleNames:"租户"}] list = list.reduce((result,item)=>{// roleNames是遍历的判断条件,相当于filterif(item.roleNames === "系统管理员"){//以下是map常用的数据格式转换用法return result.concat([{ //此处不能用push,push不返回值value:item.userName,label:item.userName,}])}else {//这个else很重...
JS数组的增、删、改、插1.js数组的创建 数组的创建有两种方式 <script>//创建数组console.log("------创建数组------")var arr1 = []var arr2 = new Array("今天你学习了吗","ok")console.log(arr2) </script>2.向数组追加数据 使用push()方法 <script>//向数组追加元素console.log("------向数组追加元素------")arr1.push("十安")arr1.push("果酱女")arr1.push("晗影")console.log(arr1) </script>3.删除数组中的元素 使用splice...
场景这是在写一个特殊的 React 业务组件(虚拟树形列表)时想到的一个问题,当时我内部实现了一个继承数组的类(因为不想用 Getter 的方式去访问这个类存储的数据,所以选择直接继承数组,这样也可以在内部直接用 this 去访问数组本身以及方法)并且要实现一个内部过滤数据并且可以重置过滤的功能。我第一时间想到的便是,在初始化时给每个数据打上标记,过滤时把数据取出,重置时把数据放回并且按标记来重新排序。class DataArr ext...
JS数组合并 concat方法 var a = [1, 2, 3], b = [4, 5, 6];// 向a数组添加b; var c = a.concat(b);// [1,2,3,4,5,6] console.log(c);// [1,2,3] 不改变本身 console.log(a);for循环push方法 var a = [0, 1]; var b = [2, 3, 4];for (var i = 0; i < b.length; i++) {a.push(b[i]) }// [0,1,2,3,4] console.log(a);apply方法函数的apply方法有一个特性,那就是func.apply(obj,argv),argv是一个数组// ES5 的写法 var a = [0, 1, ...
数组的创建 new 字面量 数组的索引 数组的长度 数组名.length 数组的遍历var arr = [5, 4, 3, 2, 1, 10, 6, 7];for (var i = 0 ; i < arr.length; i++){console.log(arr[i]);}var arr = [5, 4, 3, 2, 1, 6, 7];var max = arr[0];for (var i = 0; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}}console.log(max);var arr = ['red', 'green', 'blue', 'pink'];var str = '';var sep = '|';for (var i = 0; i < arr.lengt...