gpt4 book ai didi

javascript - 如何将 map 插入数组并清除原始 map 以存储更多数据

转载 作者:行者123 更新时间:2023-12-02 22:10:28 25 4
gpt4 key购买 nike

我正在使用一张 map 将姓名和号码存储为 K,V 对。我正在使用 for 循环来运行并存储此 map 中的多个数据集。预期的行为是一个将被执行的循环,值将存储在映射中,然后我想将此映射插入一个数组并清除原始映射以存储另一个数据集。我的问题是,当我尝试清除原始 map 时,它也会删除已保存在数组中的数据。我尝试使用深层复制,但它不起作用。还有其他方法吗?

下面是我的代码。

for (let GUId of GUIIds) {
if (GUId.toLowerCase() != parentGUI.toLowerCase()) {
await browser.driver.switchTo().window(GUId);

for (let j = 0; j < (await this.elePanels.count()); j++) {
if (j != 0) await this.elePanels.get(j).click();

let name = await this.elePanels
.get(j)
.getWebElement()
.findElement(By.xpath(".//mat-panel-title"))
.getText();

let number = await this.elePanels
.get(j)
.getWebElement()
.findElement(
By.xpath(
".//span[@class='ng-star-inserted']//following-sibling::span"
)
)
.getText();
await map.set(name, number);
}
await actualData.push(map);
await map.clear();
await browser.driver.close();
await browser.driver.switchTo().window(parentGUI);
}

return actualData;

最佳答案

数组是 Javascript 中的引用类型,当将变量分配给它时,它指向数组的引用,而不是值。您收到此错误是因为 actualData 存储 map 数组的引用而不是值。要解决此问题,请使用 array.slice(),因为 array.slice() 返回数组的值而不是引用。

    const actualData = [];
...
actualData.push(map.slice(0))

您可以阅读更多相关信息here

关于javascript - 如何将 map 插入数组并清除原始 map 以存储更多数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59573957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com