Javascript 检查对象数组中的对象中是否存在值
我正在尝试编写以下算法的代码Javascript 检查对象数组中的对象中是否存在值,javascript,arrays,Javascript,Arrays,我正在尝试编写以下算法的代码 我有一个活动\u id的数组(数组) ID来自url(字符串) 如果活动\u ID数组中不存在ID值 运行函数A() 否则什么也不做 注意-函数A()只能运行一次 我试着写代码 for (var i = 0; i < activeIds.length; i++) { if (activeIds[i] != uid) { A(); //This is running multiple times. } 我遗漏了一些东
- 我有一个
(数组)活动\u id的数组
来自url(字符串)ID
- 如果活动\u ID数组中不存在ID值
- 运行函数A()
- 否则什么也不做
for (var i = 0; i < activeIds.length; i++) {
if (activeIds[i] != uid) {
A(); //This is running multiple times.
}
我遗漏了一些东西。无法找到它。如果仅当数组中不存在特定ID(
uid
)时才要调用函数A()
,则可能需要使用以下方法更改循环方法:
if (activeIds.filter(function(n){ return n===uid }).length==0){
A();
}
这里有一个函数a()的定义,已经可以使用了
旁注您使用函数A(){}
的语法只是定义函数A,但它不会运行它。如果要定义并运行一次,可以执行以下操作:
(function A(){
// logic goes here
})();
试试这个,代码
var i=0;
var isMatchFound = false;
while (activeIds.length >= i) {
if(activeIds[i] ==uid){
isMatchFound = true;
break;
}
i++;
}
if(isMatchFound){
//Call Function A
A();
}
希望这将有所帮助您可以使用
索引
,如下所示:
if( activeIds.indexOf(id) < 0 ) A();
if(activeIds.indexOf(id)<0)A();
您可以使用indexOf函数,如果数组中不存在元素,该函数将返回-1;如果元素存在,则正数从0开始直到数组(长度-1):
if (activeIds.indexOf(uid) == -1) {
A();
}
function A();
您可以使用
array.indexof()
函数来查找值。
它看起来是这样的:
if(activeIds.indexOf(uid) === -1){
A();
}
你能添加一个小提琴链接吗。人们将能够更容易地帮助您。我认为更适合:
activeIds.every(function(v){return v!=uid})
。只是为了确保即使浏览器不支持ES6功能,它也能正常工作。我不确定activeIds.some(函数(n){returnn==uid})
是否会产生更好的性能。我只是想知道它是否会在碰到真实的情况时立即破裂。顺便说一句,我想得太多了。元素只是原始数字。:)过滤器和每个都是ES5功能。只有IE8需要垫片…
if(activeIds.indexOf(uid) === -1){
A();
}