检查JavaScript对象中是否存在值
如果存在一个特定项(在我的例子中是id为2的MachineId),我将如何签入我的对象数组 我试过这个:检查JavaScript对象中是否存在值,javascript,jquery,Javascript,Jquery,如果存在一个特定项(在我的例子中是id为2的MachineId),我将如何签入我的对象数组 我试过这个: if (index instanceof machineIds.MachineID) { alert('value is Array!'); } else { alert('Not an array'); } 最容易理解的解决方案是在阵列上循环,并检查每个阵列 var match; for (var i = 0; i < yourArray.length; i++)
if (index instanceof machineIds.MachineID) {
alert('value is Array!');
} else {
alert('Not an array');
}
最容易理解的解决方案是在阵列上循环,并检查每个阵列
var match;
for (var i = 0; i < yourArray.length; i++) {
if (yourArray[i].MachineId == 2)
match = yourArray[i];
}
var匹配;
for(var i=0;i
注意:如果有多个匹配项,这将返回最后一个。你也可以在活动中打扮一下
function findByMachineId(ary, value) {
var match;
for (var i = 0; i < ary.length; i++) {
if (ary[i].MachineId == value)
match = ary[i];
}
return match;
}
函数findByMachineId(ary,值){
var匹配;
对于(变量i=0;i
您可以使用以下条件:
if (arr.filter(function(v){return this.MachineID == 2;}).length > 0)
通过跨浏览器方式,您可以使用以下方法:
var item = $.grep(machineIds, function(item) {
return item.MachineID == index;
});
if (item.length) {
alert("value is Array!");
}
有许多标准的解决方案,您不需要第三方库或迭代循环
- -从JavaScript 1.6开始
- -自ES6以来
- -自ES6以来
some()
数组some
方法接受两个参数:
- callback-用于测试每个元素的函数
- thisObject—在执行回调时用作此对象的对象
some
会立即返回true
这是一个老问题,但这里有一个ES6解决方案,它使用:
对于指定的数据,您应该与
“2”
进行比较,而不是与2
进行比较。或者只删除Chrome 46中的一个=
标志。在原型中看不到它。这个功能真的适用于所有浏览器吗?请看这里:这里:请描述您的代码工作或使用自我解释的注释!请记住,这并不适用于所有IE和一半的移动浏览器(截至2016年11月):当然。如果您使用的是ES6,那么您应该使用Babel(或类似的transpiler)
var item = $.grep(machineIds, function(item) {
return item.MachineID == index;
});
if (item.length) {
alert("value is Array!");
}
var yourArray = [{"MachineID":"1","SiteID":"20"},{"MachineID":"2","SiteID":"20"},{"MachineID":"3","SiteID":"20"},{"MachineID":"4","SiteID":"20"}];
var params = {searchedID: "2", elementFound: null};
var isCorrectMachineID = function(element) {
if (element.MachineID == this.searchedID);
return (this.elementFound = element);
return false;
};
var isFound = yourArray.some(isCorrectMachineID, params)
let machine2 = machines.find((machine) => machine.id === '2');
if (machine2) {
// ...
}
var item = [{"MachineID":"1","SiteID":"20"},{"MachineID":"2","SiteID":"20"},{"MachineID":"3","SiteID":"20"},{"MachineID":"4","SiteID":"20"}];
var newItem = item.filter(function(i) {
return i.MachineID == 2; //it will return an object where MachineID matches with 2
});
console.log(newItem); // will print [{"MachineID":"2","SiteID":"20"}]