通过if语句的函数参数传递对象属性

Pass object property through function parameter for if statement

本文关键字:参数传递 对象 属性 函数 if 语句 通过      更新时间:2023-09-26

我有一个对象数组。我需要创建一个函数,为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的对象。

由于value是一个变量,我们可以使用[]而不是.操作符试试这个方法

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

如果需要的话,最好也使用filter。

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