数组扁平化

数组扁平化函数flat:

var
arr = ['a','b',['1','2',['3','4']],'c']; /*方法一:*/ function flat(arr){ var result = []; var each = function(arr){ arr.forEach(function(i){ if(i instanceof Array){ each(i); } else { result.push(i); } }); } each(arr); return result.join(','); } var result = flat(arr); console.log(result); /*方法二:*/ function flat(arr){ var stringValue = Array.prototype.toString; Array.prototype.toString = function(){ return this.join(','); } var result = arr + ''; Array.prototype.toString = stringValue; return result; } /*方法三:*/ function flat(){ var Value = Array.prototype.valueOf; Array.prototype.valueOf = function(){ return this.join(','); } var result = arr + ''; Array.prototype.valueOf = Value; return result; } /*方法四:*/ Array.prototype[Symbol.iterator] = function(){ //ES6中Symbol类型 var arr = [].concat(this); var getfirst = function(array){ var first = array.shift(); return first; }; return { next: function(){ var item = getfirst(arr); if(item){ return { value: item, done: false }; } else { return { done: true }; } } } }; function flat(arr){ var result = []; for(var i in arr){ result.push(i); } return result.join(','); } var result = flat(arr); console.log(result);

猜你喜欢

转载自www.cnblogs.com/wuting/p/9250041.html