来自mdn:
注意:通常情况下,ES2015中的spread操作符在复制数组时会深入一个层次。因此,它们不适合复制多维数组。Object.assign()和对象扩展语法的情况是相同的。为了更好地理解,请看下面的示例。
var a = [[1], [2], [3]];
var b = [...a];
b.shift().shift(); // 1
// Now array b is: [[2], [3]]
以上陈述有何意义?上面的代码示例的工作方式与使用.slice()方法将数组复制到a到b中一样。我尝试在这里向数组添加另一个维度:和其他方面仍然按预期工作。
那么,为什么扩展语法不适合复
有没有办法在不知道列数的情况下将多维数组传递给函数……我的意思是,假设我想打印一个多维数组,比如说a[][9]和b[][3]。如果我创建了一个公共函数,比如print。
// I have to specify the no of columns right and since
// the no of columns should be same for both actual and
// formal arguments
void print(int a[][])
我必须为不同的多维数组创建不同的函数。应该有一些绕过它的方法。
如何传递未绑定的多维数组?
我有WCF WebService,它使用AdomdConnection访问多维数据集。服务托管在Sharepoint Server 2010中。
我还拥有,它调用WCF服务,并从客户端(使用javascript)调用。一切都很好,但是身份验证有问题。这两个服务(ASCX和WCF)都托管在Sharepoint中。
在访问多维数据集数据时,我从WCF服务中得到一个异常:
Either the user, NT AUTHORITY\IUSR, does not have access to the GMS1106 database, or the database does not exist.
我