繁体   English   中英

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

[英]In JavaScript, how to return a part of an Array by reference from a method?

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

Array的slice()方法不会通过引用返回

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

有人有什么建议吗?

我建议像这样实现您的行函数:

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

并像这样使用它:

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

并检索:

a.row(0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM