作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我使用这段代码在数组中查找一个值,如果找到则将其删除:
var index2 = myarray.indexOf(mystring);
if(index2 > -1){
myarray.splice(index2, 1);
}
然而,myarray 变化非常频繁。所以有时候,你认为有可能当我拼接时,index2 值不再正确了吗?
如果发现 100% 确定正确值已删除,我如何从数组中删除一个值?
最佳答案
So sometimes, do you think it could possible that when I do splice, the index2 value is not the right on anymore?
不是在绝大多数 JavaScript 环境中,不,因为在那些环境(浏览器、NodeJS 等)中,所有访问该数组的代码都在单线程上运行,这是从不在处理任务的过程中中断(HTML 规范称它们为;ES6 规范称它们为作业)。 (除了 Firefox 中围绕 alert
的一些边缘情况,但你的代码没有使用它们。)所以在你的 indexOf
之后但在你的之前什么都不会出现拼接
,如果它们一个接一个地出现,如图所示。
有 JavaScript 不是单线程的环境。最常见的是 Java 虚拟机,它可以通过 Rhino 和 Nashorn(“nass-horn”)脚本引擎运行 JavaScript 代码。
你也可以在浏览器上有多个线程,通过 web workers , 但它们只能通过消息传递进行通信,因此两个单独的线程不能更新同一个数组。
关于javascript - JS : How to remove element from an array if found?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681840/
我是一名优秀的程序员,十分优秀!