2015-07-19 64 views
0

我有一个对象数组。 我需要创建1个函数,它返回一个if语句的特定对象键名称。目前我正在试图做到这一点,像这样:通过函数参数传递对象属性if语句

<button onclick="isClick('curly_hair')"><u>curly</u></button> 

这里是我尝试的功能:

function isClick(value) { 
    for (i = 0; i < People.length; i++) { 
     if (People[i].options.value) { 
//do stuff 
} 

这里是我的对象

var People = [ 
    { 
     name: "Bill", 
     img: "images/168-Cool-avatars/256x256_male-avatars_png/avatar-m-small-01.png", 
     options: { 
      curly_hair: false, long_hair: true, ... 
     }, 
    }, 

要阐述的数组:与其需要为我的每个“选项”属性(curly_hair,long_hair等)创建一个“if”语句。我试图通过函数参数来传递它。 如果我传递“isClick(curly_hair)”,我想返回Person数组中具有curly_hair:true的所有对象。

+0

你可以使用Array.filter – Grundy

回答

0

当值,我们可以用[]代替.运营商使用一个变量尝试这种方式

function isClick(value) { 
    for (i = 0; i < People.length; i++) { 
     if (People[i].options[value]) { 
      //do stuff 
     } 
} 

这是更好的,如果需要还可以使用过滤器。

function isClick(value) { 
     return People.filter(function(obj){ 
     return !!obj.options[value]; 
    }) 
} 
相关问题