首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.splice不工作("Uncaught : collisions.splice不是函数“)

.splice不工作("Uncaught : collisions.splice不是函数“)
EN

Stack Overflow用户
提问于 2016-08-17 10:24:55
回答 2查看 1.3K关注 0票数 1

我试图从javascript中的数组中删除特定项,但似乎无法使array.splice函数工作。

此代码用于检查SVG对象是否与另一个对象发生冲突(用于游戏)。玩家总是希望有3个与之交叉的对象,因此我希望将这些对象从列表中删除。

到目前为止我的代码是:

代码语言:javascript
复制
svg=document.getElementById("canvas");

function checkcollision(){
    var r0=document.getElementById("rhb1").getBoundingClientRect(), r1=svg.createSVGRect(); r1.x=r0.left; r1.y=r0.top; r1.width=r0.width; r1.height=r0.height;
    var collisions=svg.getIntersectionList(r1,null), len=collisions.length;
    console.log(collisions);
    for(i=len-1;i>=0;i--){
        if(collisions[i].id=="renclosure"||collisions[i].id=="cplayer"||collisions[i].id=="rhb1"){
            collisions.splice(i,1);
        }
    }
    console.log(collisions);
    if(collisions.length>0){
        return true;
    }
    else{
        return false;
    }
}

控制台显示的冲突数组的示例是

代码语言:javascript
复制
[<rect id=​"renclosure" x=​"0" y=​"0" width=​"15360" height=​"8640" class=​"st0">​</rect>​, <circle id=​"cplayer" cx=​"960" cy=​"540" r=​"50" class=​"st1">​</circle>​, <rect id=​"rhb1" x=​"0" y=​"0" width=​"100" height=​"100" class=​"st2" transform=​"translate(910, 490)​ rotate(0 050 050)​">​</rect>​]

(直接复制)。

然而,谷歌Chrome每次都会抛出一个错误“未登录的TypeError: collisions.splice不是一个函数”,我不明白为什么(或者如何修复)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-17 10:28:50

您的collisions不是Array类型的

试着使用

Array.prototype.splice.call(collisions, i, 1)

splice.call()呢,看这里,Function.prototype.call

票数 4
EN

Stack Overflow用户

发布于 2016-08-17 10:32:25

根据https://developer.mozilla.org/en/docs/Web/API/SVGSVGElementgetIntersectionList的结果不是数组,而是NodeList

但是,您可以通过以下调用将NodeList转换为Arrayvar div_array = Array.prototype.slice.call(div_list); // converts NodeList to Array

这里有更多的信息:https://developer.mozilla.org/en-US/docs/Web/API/NodeList

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38994015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档