javascript - 将项目推送到“for of”内的数组未按预期工作
问题描述
我的程序正在获取项目列表(拆分的字符串)并按"-"
每个短语开头的数量对它们进行分组,将它们放在变量内的不同级别quantityCreatedArray
,
由于每次单击按钮都会更改此数字,因此我想将每次更改存储在变量quantityCreatedArray
中,
我正在尝试使用该方法将数组推入数组中Array.push()
,
这整个部分在for of
我的代码的另一部分(不重要)所需的结构内,
问题是数组arrayUsed
(具有来自变量的所有数组quantityCreatedArray
)正在返回一个数组,其中的数组具有变量的最后一次更改quantityCreatedArray
......
由于我使用的push
方法是将数组放入其中,因此我尝试使用简单的方法arrayUsed
将变量直接放入其中,但是结果是一样的...arrayUsed
for
下面是一些示例代码供您测试
menus = [
"- LEVEL 1",
"- - LEVEL1-1",
"- - - LEVEL 1-1-1",
"- - - LEVEL1-1-2",
"- - - - LEVEL1-1-2-1",
"- - - - - LEVEL 1-1-2-1-1",
"- - - - LEVEL-1-2-2",
"- - - LEVEL-1-3",
"- LEVEL2"
];
var quantityCreatedArray = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var arrayUsed = [];
for (let item of menus) {
let itemSplited = item.split(" ");
let counter = 0;
while (itemSplited[counter] == "-") {
counter++;
}
for(let i1 = 0;i1<counter;i1++) {
itemSplited.shift()
}
quantityCreatedArray[counter]++
arrayUsed.push(quantityCreatedArray);
}
console.log(arrayUsed);
quantityCreatedArray
我希望记录里面的变量的所有变化arrayUsed
,但相反,我得到了它的最后一个变化。
解决方案
推荐阅读
- c# - 不知道数据类型时调用 JsonConvert.DeserializeObject?
- javascript - Vue - vue2-google-maps 使用道具动态加载 api 密钥?
- php - 不会在 woocommerce_subscription_status_pending-cancel WooCommerce 挂钩中设置 Cookie
- android - 为什么 setEnabled(false) 不触发主题 Theme.AppCompat.Light 的 ColorStateList?
- android - 从 Firebase 存储流式传输 mp3
- python - 制定一个类以在引用字典时引入新数据
- node.js - socketcluster jwt auth 使用在另一台服务器上生成的令牌
- java - 在现代项目中使用具有较旧语言级别的 JAR 对性能有何影响?
- ios - 如何在 Swift 中查找连接到我的 Wifi 的所有设备的 IP 和 Mac 地址?
- android - 传递任何对象的内存泄漏