array.prototype函数逻辑OR元素

时间:2015-04-10 18:33:11

标签: javascript

我试过了:

Array.prototype.mergeTrue = function(b) {
    // assume the arrays have same length
    this.forEach(function(val,i){
        this[i] = val || b[i];
        console.log(val || b[i], this[i]);
    });
}
var c = [false, true, false, true];
var d = [false, false, true, true];
c.mergeTrue(d);
console.log(c);

得到了这个结果: 假的 的确如此 的确如此 的确如此 [false,true,false,true]

但在最后一行预计这个: [false,true,true,true]

我错过了什么?

1 个答案:

答案 0 :(得分:0)

试试这个:

Array.prototype.mergeTrue = function(b) {
    for(var i = 0; i < this.length; i++){
        this[i] = this[i] || b[i];
    }   
}
var c = [false, true, false, true];
var d = [false, false, true, true];
c.mergeTrue(d);
console.log(c);