Javascript函数和数组
Javascript function and Array
我试图从数组中剪切一些值,例如我想从它的位置剪切1并返回数组为(3,5,4,6,2,7),但有一个错误说拼接不是一个函数。
function findMin() {
var arr = arguments;
arr.splice(1,1);
return arr[0];
}
document.getElementById("demo").innerHTML = findMin(1,3,5,4,6,2,7);
arguments
不是数组,它是类数组。您可以像这样以数组的形式获取其内容的副本:
var arr = Array.prototype.slice.call(arguments, 0);
…然后你可以对它使用数组操作
代码的另外两个问题:
与
splice
一起使用的索引从0
开始,而不是1
返回的是(新)第一个条目,而不是数组
slice
;Denys ssamguret告诉你。
下面是一个示例,只是使用slice
复制arguments
,而不将其与其他代码结合,上面的其他问题也被修复:
function findMin() {
var arr = Array.prototype.slice.call(arguments, 0);
arr.splice(0, 1);
return arr;
}
document.getElementById("demo").innerHTML = findMin(1, 3, 5, 4, 6, 2, 7);
<div id="demo"></div>
问题是arguments
不是一个数组,而是一个类似数组的对象。
通常的解决方案是使用slice
从类数组对象中获取数组。由于slice
的正常用途是从数组中获取切片,这里有一个解决方案,为您提供一个没有第一个元素的arguments
副本:
function findMin() {
return Array.prototype.slice.call(arguments, 1);
}
指出操作
arguments
,甚至使用slice
,都会对整个函数的性能产生影响。尽量避免。多亏了ES6 (JavaScript背后的下一个迭代标准),在不久的将来,我们将能够使用
Array.from
而不是slice。
相关文章:
- 数组函数不适用于从元素文本创建的JavaScript数组
- 如何在javascript中求解pack数组函数
- 制作一个javascript的数组函数
- 获取元素的位置并创建它的数组函数
- 茉莉花中的 SpyOn javascript 数组函数
- 自定义数组函数不接受参数
- 使用原型的自定义数组函数.新的 MyArray(1,2,3,4) 不工作
- Java 脚本随机化数组函数
- 在 Restangular 集合上使用 lodash 数组函数
- 比较数组函数返回未定义
- Javascript中嵌套for循环与数组函数的性能
- 多维数组函数在JS中不起作用
- Javascript数组函数有我看不到的错误
- 数组函数外的javascript
- 在数组/函数中循环时使用换行符
- 拼接javascript数组函数获胜't删除项目
- 为什么不'这个js数组函数不能工作
- 如何在我自己的数组原型函数中使用数组函数
- 在javascript中定义数组函数
- Jquery动态树数组函数