json.parse()得到的Json对象,可以直接添加数组对象吗?使用了push()方法却代替了原来的数组对象
发布于 7 年前 作者 chaoxihailing 3902 次浏览 来自 问答

数据结构像下图 image.png

现在想在这个数据结构,在clients数组添加 {token: token, expiredTime: expireTime}这样的对象 image.png

程序执行后却替换了原有的token,而不是添加新的token

插入前,插入后 image.png

4 回复

for of 遍历的是数组???

for 循环里逻辑有问题吧 假设data.clients 长度是10,token都不相等的话,岂不是push了10次。 token不相等就执行splice 和 push 只是为了把这个对象放到数组最后一位?

楼主的逻辑是想 token 如果有一样的,替换掉,没有一样的 添加到 clients 数组中吗?

试试这样: let data = [{ token: 1, expireTime: 1 }, { token: 2, expireTime: 2 }, { token: 3, expireTime: 3 }]; let one = { token: 5, expireTime: 5 };

let index = -1; for (let i = 0; i < data.length; i++) { if (data[i].token == one.token) { index = i; break; } }

if (index < 0) { data.push(one); } else { data[index] = one; }

console.log(data)

@coolsnbo 嗯,我的逻辑是你说的那样的,谢谢啦

回到顶部