JS函数中如何调用多变量数组?
How to call multi variable array in JS function?
我正在使用此功能 select 下拉菜单中的一项:
async selectNode(nodeType, nodeName) {
await page.click(this.selectors.reset);
await this.toggleNode(nodeType, nodeName, true);
await this.select();
}
现在我想在“await this.select();
”这一步之前select多项。
我试过这样编辑函数:
async selectMultiNodes([nodeType, nodeName],) {
await page.click(this.selectors.reset);
for (var i = 0; i < nodeType.length; i++) {
await this.toggleNode(nodeType, nodeName, true);
}
await this.select();}
但是当我将此函数调用到 select 多项目时
await topologyBrowser.selectMultiNodes(['SGSN-MME', 'mme088'],['EPG', 'epg84-real'],['SAPC', 'sapc17']);
有错误
Expected 0-1 arguments, but got 3
我该如何解决这个问题?
您可以使用 spread syntax ...
让方法接受任意数量的参数
function tryMe(...args){
console.log(args);
}
tryMe(1,2,3);
所以你可以让你的方法接受任意数量的数组并在循环中解构它们
async function selectMultiNodes(...nodes) {
for(let i=0;i<nodes.length;i++){
const [nodeType,nodeName] = nodes[i];
console.log(nodeType,nodeName);
}
}
selectMultiNodes(['SGSN-MME', 'mme088'],['EPG', 'epg84-real'],['SAPC', 'sapc17']);
所以你的最终代码是
async selectMultiNodes(...nodes) {
await page.click(this.selectors.reset);
for (var i = 0; i < nodes.length; i++) {
const [nodeType,nodeName] = nodes[i];
await this.toggleNode(nodeType, nodeName, true);
}
await this.select();
}
我正在使用此功能 select 下拉菜单中的一项:
async selectNode(nodeType, nodeName) {
await page.click(this.selectors.reset);
await this.toggleNode(nodeType, nodeName, true);
await this.select();
}
现在我想在“await this.select();
”这一步之前select多项。
我试过这样编辑函数:
async selectMultiNodes([nodeType, nodeName],) {
await page.click(this.selectors.reset);
for (var i = 0; i < nodeType.length; i++) {
await this.toggleNode(nodeType, nodeName, true);
}
await this.select();}
但是当我将此函数调用到 select 多项目时
await topologyBrowser.selectMultiNodes(['SGSN-MME', 'mme088'],['EPG', 'epg84-real'],['SAPC', 'sapc17']);
有错误
Expected 0-1 arguments, but got 3
我该如何解决这个问题?
您可以使用 spread syntax ...
function tryMe(...args){
console.log(args);
}
tryMe(1,2,3);
所以你可以让你的方法接受任意数量的数组并在循环中解构它们
async function selectMultiNodes(...nodes) {
for(let i=0;i<nodes.length;i++){
const [nodeType,nodeName] = nodes[i];
console.log(nodeType,nodeName);
}
}
selectMultiNodes(['SGSN-MME', 'mme088'],['EPG', 'epg84-real'],['SAPC', 'sapc17']);
所以你的最终代码是
async selectMultiNodes(...nodes) {
await page.click(this.selectors.reset);
for (var i = 0; i < nodes.length; i++) {
const [nodeType,nodeName] = nodes[i];
await this.toggleNode(nodeType, nodeName, true);
}
await this.select();
}