jQuery 第一个对象,其中 x = true
jQuery first object where x = true
我有一些对象作为参数传递给函数,例如:
$( document ).on( "custom.event", function( evt, obj ) {
console.log( obj );
});
对象看起来像这样(在控制台中):
Object {name: "obj1", property: "", somethingElse: "some value"}
Object {name: "obj2", property: "1", somethingElse: "some value"} //I want this one!
Object {name: "obj3", property: "", somethingElse: "some value"}
Object {name: "obj4", property: "1", somethingElse: "some value"}
我想使用 属性 等于“1”的 FIRST 对象,并让我支配其余的属性及其值(来自上述 obj)。我该怎么做?我试过 $.each 但无法弄清楚如何只 return 第一个对象 属性 == "1"。
谢谢
遍历数组并在某项与所需的 属性 值匹配时存储引用。
var first1Obj;
for(i=0; i<=obj.length; i++){
if (obj[i].property == "1"){
first1Obj = obj[i];
break;
}
}
您可以使用 $.each
循环元素并在找到第一个对象时使用 return false
中断循环:
var searchedObject = null;
$.each(obj, function(index, el) {
if (el.property == "1") {
searchedObject = el;
return false;
}
});
如果您不担心 IE8 或以下版本,您也可以使用 Array.prototype.filter()
var searchedObject = obj.filter(function(el) {
return el.property == "1"
})[0]; // [0] to get the 1st element.
检查这是否适合您:https://jsfiddle.net/leojavier/83wt0vvg/
var obj = [
{name: "obj1", property: "", somethingElse: "some value"},
{name: "obj2", property: "1", somethingElse: "some value"},
{name: "obj3", property: "", somethingElse: "some value"},
{name: "obj4", property: "1", somethingElse: "some value"}]
for(item in obj) {
if(obj[item].property == 1) {
console.log(obj[item].name)
break;
}
}
我有一些对象作为参数传递给函数,例如:
$( document ).on( "custom.event", function( evt, obj ) {
console.log( obj );
});
对象看起来像这样(在控制台中):
Object {name: "obj1", property: "", somethingElse: "some value"}
Object {name: "obj2", property: "1", somethingElse: "some value"} //I want this one!
Object {name: "obj3", property: "", somethingElse: "some value"}
Object {name: "obj4", property: "1", somethingElse: "some value"}
我想使用 属性 等于“1”的 FIRST 对象,并让我支配其余的属性及其值(来自上述 obj)。我该怎么做?我试过 $.each 但无法弄清楚如何只 return 第一个对象 属性 == "1"。
谢谢
遍历数组并在某项与所需的 属性 值匹配时存储引用。
var first1Obj;
for(i=0; i<=obj.length; i++){
if (obj[i].property == "1"){
first1Obj = obj[i];
break;
}
}
您可以使用 $.each
循环元素并在找到第一个对象时使用 return false
中断循环:
var searchedObject = null;
$.each(obj, function(index, el) {
if (el.property == "1") {
searchedObject = el;
return false;
}
});
如果您不担心 IE8 或以下版本,您也可以使用 Array.prototype.filter()
var searchedObject = obj.filter(function(el) {
return el.property == "1"
})[0]; // [0] to get the 1st element.
检查这是否适合您:https://jsfiddle.net/leojavier/83wt0vvg/
var obj = [
{name: "obj1", property: "", somethingElse: "some value"},
{name: "obj2", property: "1", somethingElse: "some value"},
{name: "obj3", property: "", somethingElse: "some value"},
{name: "obj4", property: "1", somethingElse: "some value"}]
for(item in obj) {
if(obj[item].property == 1) {
console.log(obj[item].name)
break;
}
}