gpt4 book ai didi

javascript - 检查数组中是否存在函数

转载 作者:行者123 更新时间:2023-11-29 10:41:31 25 4
gpt4 key购买 nike

我有一个 kinecticjs 图像对象,我正在根据一些参数应用过滤器,但是当它需要重新绘制时,它将再次应用过滤器,这意味着它将复制过滤器。

我知道我应该做一些检查,但它对数组应用了一个函数。

//create object
var image = new Kinetic.Image({
image: alreadyLoadedImageObject
});

function addFilter(shouldAdd){
if(shouldAdd){
var filters = image.filters() || [];

filters.push(Kinetic.Filters.RGB);

image.filters(filters);
}
}

layer.add(image);
stage.add(layer);

addFilter(true);
stage.draw();

setTimeout(function(){
addFilter(true);
stage.draw();
},500);

这应该大致显示了我目前正在做的事情,在这种情况下,一旦超时,就会有 2 Kinetic.Filters.RGB应用于图像对象。

我认为这是一个一般的 javascript 问题,而不仅仅是 kineticjs,因为根本是我需要以某种方式知道已经有一个 Kinetic.Filters.RGB。过滤器数组中的函数。

所以有 2 个问题,是否有类似 Array.indexOf 的检查函数名已经存在于数组中?还是 KineticJS 中已经有某种我没见过的预构建方法?

最佳答案

x = function(){};
y = function(){};
a = [];
a.push(x);
a.indexOf(x); //0
a.indexOf(y); //-1

所以你可以试试:

if(filters.indexOf(Kinetic.Filters.RGB) !== -1)

关于javascript - 检查数组中是否存在函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com