数组常用操作
講幾個前端開發常用的問題吧,關于數組的。如果有問題,可能就是我太LOW了,
昨天去外面走走,感覺非常不錯,附幾張照片~
1-數組去重
> var arr = [1,2,3,4,3,4]; > var arr2 = [...new Set(arr)];2-字符串反轉
> var str = "helloxiaoMing"; > var str2 =str.split('').reverse().join('');3-深拷貝
function deepClone(obj) {var o = obj instanceof Array ? [] : {};for(var k in obj) o[k] = typeof obj[k] === Object ? deepClone(obj[k]) : obj[k];return o;}var a = [[1, 2, 3], [4, 5, 6, 7]];var c= {a:"111",b:"2222",e:{x1:"22",x2:"33"}};var b = deepClone(a);var d = deepClone(c);console.log(b);console.log(d);4-二維數組降為一維數組
var arr = [1,2,3,[4,5,6,[7,8,9]]];function reduceDimension(arr) {var tmp = arr;var result = arr;while(tmp instanceof Array) {result = Array.prototype.concat.apply([], result);tmp = tmp[0];}return result;}console.log(reduceDimension(arr));5-打亂一個數組
function randArray(data){//獲取數組長度var arrlen = data.length;//創建數組 存放下標數var try1 = new Array();for(var i = 0;i < arrlen; i++){try1[i] = i;}//創建數組 生成隨機下標數var try2 = new Array();for(var i = 0;i < arrlen; i++){try2[i] = try1.splice(Math.floor(Math.random() * try1.length),1);}//創建數組,生成對應隨機下標數的數組var try3 = new Array();for(var i = 0; i < arrlen; i++){try3[i] = data[try2[i]];}return try3;}var arr = ["a","b","c","d"];alert(randArray(arr));8-多維數組降維 使用generator迭代器
var arr = [1, [[2, 3], 4], [5, 6]];var flat = function* (a) {var length = a.length;for (var i = 0; i < length; i++) {var item = a[i];if (typeof item !== 'number') {yield* flat(item);} else {yield item;}} };for (var f of flat(arr)) {console.log(f); }總結
- 上一篇: 【wps office】app(Offi
- 下一篇: 实现input框的全选和清空