Javascript 不允许对链接函数的元素参数执行数组操作

Javascript 不允许对链接函数的元素参数执行数组操作,javascript,arrays,angularjs,angular-directive,Javascript,Arrays,Angularjs,Angular Directive,这是角度指令的链接函数 当我查看元素对象时,它有以下结构 link: function(scope, element, attrs, model) 它看起来像是一个数组。但当我尝试对它执行数组操作时,它会产生错误。而对元素[0]的引用起作用 我无法理解为什么会发生这样的情况这是一个对象,您无法对其执行数组操作。如果需要从对象中删除关键点,请尝试 R[1] 0: input#existingAreas.form-control.ng-isolate-scope length: 1 __prot

这是角度指令的链接函数

当我查看元素对象时,它有以下结构

link: function(scope, element, attrs, model) 
它看起来像是一个数组。但当我尝试对它执行数组操作时,它会产生错误。而对元素[0]的引用起作用


我无法理解为什么会发生这样的情况

这是一个对象,您无法对其执行数组操作。如果需要从对象中删除关键点,请尝试

R[1]
0: input#existingAreas.form-control.ng-isolate-scope
length: 1
__proto__: Object[0]

我们可以看到:

元素是此指令匹配的jqLite包装元素

jQuery(以及jqLite)返回所谓的类似数组的对象,这意味着它们具有数字索引属性和长度属性。它们看起来像数组,可以通过函数与某些数组函数一起使用,但它们不是真正的数组,因此没有普通的数组方法

要获取最后一个元素,只需执行以下操作

delete element['key']

为什么您认为这不是数组的对象?我不想移除任何东西。我想在不使用幻数的情况下获取最后一个元素
delete element[0]
delete element.key
delete element['key']
var last = element[element.length-1];