1.splice
splice() 方法用于添加或删除数组中的元素。
注意:这种方法会改变原始数组。
array.splice(index,howmany,item1,.....,itemX)
参数 | 描述 |
index | 必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字 。 |
howmany | 可选。规定应该删除多少元素。必须是数字,但可以是0.如果未规定此参数,则删除从 index开始到原数组结尾的所有元素 |
item1, …, itemX | 可选。要添加到数组的新元素 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <p id="demo">点击按钮将数组作为字符串输出。</p> <button onclick="myFunction()">点我</button> <script> function myFunction(){ var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x=document.getElementById("demo"); x.innerHTML=fruits.join(" "); } </script> </body> </html>
案列结果:
2.entries
entries() 方法返回一个数组的迭代对象,该对象包含数组的键值对 (key/value)。
迭代对象中数组的索引值作为 key, 数组元素作为 value。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <h1>Array entries()</h1> <p>从数组中创建一个可迭代的对象。</p> <p>迭代对象的每个实体来自数组对应的元素。</p> <p id="demo1"></p> <p id="demo2"></p> <p id="demo3"></p> <p><strong>注意:</strong> IE11 及其更早的浏览器版本不支持 entries 方法。</p> <script> var fruits = ["Banana", "Orange", "Apple", "Mango"]; var x = fruits.entries(); document.getElementById("demo1").innerHTML = x.next().value; document.getElementById("demo2").innerHTML = x.next().value; document.getElementById("demo3").innerHTML = x.next().value; </script> </body> </html>
案列结果:
递归与迭代的区别
递归(recursion):递归常被用来描述以自相似方法重复事物的过程,在数学和计算机科学中,指的是在函数定义中使用函数自身的方法。(A调用A)
迭代(iteration):重复反馈过程的活动,每一次迭代的结果会作为下一次迭代的初始值。(A重复调用B)
递归是一个树结构,从字面可以其理解为重复“递推”和“回归”的过程,当“递推”到达底部时就会开始“回归”,其过程相当于树的深度优先遍历。
迭代是一个环结构,从初始状态开始,每次迭代都遍历这个环,并更新状态,多次迭代直到到达结束状态。
理论上递归和迭代时间复杂度方面是一样的,但实际应用中(函数调用和函数调用堆栈的开销)递归比迭代效率要低。
文档参考:
1.https://www.runoob.com/jsref/jsref-obj-array.html,
2.https://www.jianshu.com/p/32bcc45efd32