在JavaScript中,如何通过引用从方法返回数组的一部分?

时间:2011-10-14 06:40:21

标签: javascript arrays

我想扩展Array.prototype以包含一个从2x2矩阵(JavaScript术语中的列表列表)中选择行或列的方法。该方法应该通过引用返回选定的Array元素,因此结果可用于动态更改Array中的某些值。

Array的slice()方法不会通过Reference

返回
a = [[1,2],[3,4]];
a.slice(0,1) = [0,0];

ReferenceError: invalid assignment left-hand side

我失败的尝试

Array.prototype.row = function(whichrow) {
var result = this[whichrow];
return result;
}

仅在需要值时才能正常工作

a.row(0)
[1, 2]

然而,显然它只返回行的值而不是行本身(如果我在这里有意义)。所以当我尝试为它分配一个新值时,它会返回错误

a.row(0) = [0,0];
ReferenceError: invalid assignment left-hand side

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

我建议你实现你的行函数:

Array.prototype.row = function(whichrow, newvalue) {
    if( newvalue !== undefined ) {
        this[whichrow] = newvalue;
    }
    return this[whichrow];
}

并像这样使用它:

a.row(0, [0,0]);

并检索:

a.row(0)