当前位置: 首页 > 知识库问答 >
问题:

javascript删除比拼接

楚煜
2023-03-14

我正在从事javascript项目,其中我有2个数组1。要素2。元素排序器;elementsOrder数组包含每个元素的名称,elements数组包含每个元素的所有属性。当我想从每个数组中删除一个元素时,我会使用“delete”内置函数,但它不会删除元素,只会将其设置为未定义,所以我会使用splice方法推出那些未定义的元素,但它不起作用。

资料来源如下:

var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];

它可以顺利地完成任务并逐个设置元素“未定义”,但当我这样做时:

var s1 = elementsOrder.indexOf(id);
delete elements[s1];
delete elementsOrder[s1];
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);

使用简单的拼接方法不起作用:

var s1 = elementsOrder.indexOf(id);
elements.splice(s1, 1);
elementsOrder.splice(s1, 1);

我在我的Javascript画布项目中使用这段代码来设置一些画布对象的动画,这样我就可以很容易地看到“删除”和“逐个取消定义”元素的效果,而splice的效果不是很好,也不会一个接一个地输出元素

请看http://jsfiddle.net/7ZuuZ/函数动画的支付,倒数第三个函数

共有1个答案

蒋权
2023-03-14

为什么不一开始就拼接呢?

var s1 = elementsOrder.indexOf(id);
elements.splice(s1,1);
elementsOrder.splice(s1,1);

这里不需要删除

 类似资料:
  • 我正在编写C++来解决这个问题,从leetcode:https://leetcode.com/problems/remove-element/ 给定数组nums和值val,移除该值的所有实例并返回新的长度。 不要为另一个数组分配额外的空间,您必须用O(1)个额外内存修改输入数组。 元素的顺序可以更改。你在新长度之外留下什么并不重要。 您的函数应该返回长度=2,nums的前两个元素为2。 在返回长度

  • 问题内容: 如果它具有另一个数组的元素,是否还有其他更好的方法可以从一个数组中删除重复项呢,它工作得很好。 问题答案: 或者,随着ES6的推出:

  • 问题内容: 我对JavaScript的运算符有些困惑。采取以下代码: 执行完这段代码后,is ,但仍指与完全相同的对象。我猜这个对象是指向相同的对象。 这使我感到困惑,因为我希望写操作可以删除指向内存中的对象,而不仅仅是变量。 这是因为JavaScript的垃圾回收工作在保留/释放的基础,所以,如果我没有指向对象的任何其他变量,它 会 从内存中清除? (顺便说一下,我的测试是在Safari 4中完

  • 问题内容: 使用标准JavaScript删除元素时,必须首先转到其父元素: 首先必须去父节点对我来说有点奇怪,JavaScript是否有这样的原因? 问题答案: 我知道,增强本机DOM功能并不总是最好的或最受欢迎的解决方案,但是对于现代浏览器来说,这很好。 然后你可以删除这样的元素 要么 注意:此解决方案不适用于IE 7及更低版本。有关扩展DOM的更多信息,请阅读本文。 编辑:回顾我在2019年的

  • 我有以下错误。在1数组中使用splice时,它会删除两个数组中的元素。代码: 控制台日志的结果是:[1,3,4,5],我只在arrayAux上使用了拼接方法。我不知道为什么会这样。 谢谢你的帮助!

  • 本文向大家介绍JavaScript组合拼接字符串的效率对比测试,包括了JavaScript组合拼接字符串的效率对比测试的使用技巧和注意事项,需要的朋友参考一下 在脚本开发过程中,经常会按照某个规则,组合拼接出一个大字符串进行输出。比如写脚本控件时控制整个控件的外观的HTML标签输出,比如AJAX里得到服务器端的回传值后动态分析创建HTML标签时,不过这里我就不讨论拼接字符串的具体应用了,我只是想在

  • 本文向大家介绍Javascript removeChild()删除节点及删除子节点的方法,包括了Javascript removeChild()删除节点及删除子节点的方法的使用技巧和注意事项,需要的朋友参考一下 下面给大家介绍Javascript removeChild()删除节点的方法,具体详情如下所示: 在Javascript中,只提供了一种删除节点的方法:removeChild()。 rem

  • 问题内容: 我是诺言和使用NodeJS中的请求和诺言编写网络代码的新手。 我想删除这些嵌套的Promise,而是将它们链接起来,但是我不确定我将如何处理它/这是否是正确的方法。 这是请求代码: 任何见识将不胜感激。 问题答案: 在每个回调中,您都需要 返回 新的Promise: 调用返回的承诺然后将使用“内部”承诺中的值进行解析,以便您可以轻松地链接它们。 通用模式: