首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Object.observe并不总是在数组上为我提供正确的已删除索引

Object.observe并不总是在数组上为我提供正确的已删除索引
EN

Stack Overflow用户
提问于 2014-11-28 01:01:34
回答 1查看 89关注 0票数 1

我有一个带有观察者函数的列表:

代码语言:javascript
运行
复制
var names = ['joe', 'bob', 'loic'];

Object.observe(names, function(changes){
    changes.forEach(function(change) {        
      console.log(change.type, change.name)
    });
    console.log("names",names);
});   


console.log("######## del bob");
names.splice(1,1);// output is "update 1 - delete 2", why?
console.log("names", names) // but "bob" is the one deleted in the list

根据change对象删除的索引是2,但是我删除了索引1,列表实际上删除了索引1。你知道为什么吗?

是因为索引1被更新得到索引2的值,而索引2被删除了吗?有没有办法获得实际删除的元素索引?

EN

回答 1

Stack Overflow用户

发布于 2014-11-28 14:38:43

您可以使用Array.observe在正确的索引处捕获拼接事件:

代码语言:javascript
运行
复制
var names = ['joe', 'bob', 'loic'];

Array.observe(names, function(changes){
    changes.forEach(function(change) {        
      console.log(change.type, change.name);
    });
});   

感谢@xavier-delamotte :)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27175764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档