everycode icon indicating copy to clipboard operation
everycode copied to clipboard

2014年11月14日

Open nunnly opened this issue 10 years ago • 9 comments

//由于不明原因,Array的reverse方法消失在二次元空间了,Program ape, help me please.

Array.prototype.reverse = function(){
//代码实现写在这里,最后应该默认return this
};

nunnly avatar Nov 14 '14 06:11 nunnly

题意第一版本有歧义时候理解错误的版本:

Array.prototype.reverse = function() {
    return this.reduce(function(arr, e) {
        arr.unshift(e);
        return arr;
    }, []);
};

var a = [1,2,3];
var b = a.reverse();

console.log(a);
console.log(b);

当前版本:

Array.prototype.reverse = function() {
    for(var i = 0; i < this.length / 2; i++) {
        var tmp = this[i];
        this[i] = this[this.length - 1 - i];
        this[this.length - 1 - i] = tmp;
    }
    return this;
};

var a = [1,2,3];
var b = a.reverse();

console.log(a);
console.log(b);

XadillaX avatar Nov 14 '14 06:11 XadillaX

@XadillaX image..........

zhangdihong avatar Nov 14 '14 06:11 zhangdihong

@XadillaX 赞一个

Array.prototype.reverse = function () {
  var re = [], len = this.length - 1;
  for (var i = 0; i <= len; i++) {
    re[len - i] = this[i];
  }
  return re;
}

var a = [1,2,3];
var b = a.reverse();

console.log(a);
console.log(b);

teabyii avatar Nov 14 '14 06:11 teabyii

@jsenjoy 你已经 new 了一个数组了。返回的跟 this 的引用已经不同了 -。 -

XadillaX avatar Nov 14 '14 06:11 XadillaX

@XadillaX 和你刚开始的理解一样..以为原数组不变..没想到题目改了

teabyii avatar Nov 14 '14 06:11 teabyii

@jsenjoy 实际上题目改了题意没变,只不过之前的题意有歧义,我们理解错了而已。

XadillaX avatar Nov 14 '14 06:11 XadillaX

@XadillaX 嗯,这样的话,实现和你更新的一样,暂时没其他想法

teabyii avatar Nov 14 '14 06:11 teabyii

Array.prototype.reverse = function(){ //代码实现写在这里,最后应该默认return this for(var i=0,len=this.length-1,initLen=this.length; i<=len; len--){ this.push(this[len]) } this.splice(0,initLen) return this; };

这样子呢?

jiehe avatar Nov 19 '14 03:11 jiehe

function reverse(arr){
    var s = JSON.stringify(arr);
    var o = [];
    var reg = /(\w+)/g;
    while(match = reg.exec(s)){
        o.unshift(match[0]);
    }
    return o;
}

只考虑的\w的情况

BiYuqi avatar Feb 04 '17 09:02 BiYuqi