Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript生成更短的条件语法_Javascript_Arrays - Fatal编程技术网

如何使用javascript生成更短的条件语法

如何使用javascript生成更短的条件语法,javascript,arrays,Javascript,Arrays,我有两个表单字段,一个是类别下拉列表,另一个是产品下拉列表。基于一个条件,当它为真时,类别和产品都将下拉。若该条件为false,则类别将是相同的下拉列表,但产品将是自动完成搜索字段 在这里,我通过使用更广泛和重复的代码方法获得结果,如下所示 if(dataSource) { newProductFields = { category_name: { ...productFields.ca

我有两个表单字段,一个是类别下拉列表,另一个是产品下拉列表。基于一个条件,当它为真时,类别和产品都将下拉。若该条件为false,则类别将是相同的下拉列表,但产品将是自动完成搜索字段

在这里,我通过使用更广泛和重复的代码方法获得结果,如下所示

if(dataSource) {
               newProductFields = {
                   category_name: {
                     ...productFields.category_name,
                     disabled: true
                  },
                   product_name: {
                     ...productFields.product_name,
                }
             };
           }
           else if(!dataSource) {
               newProductFields = {
                   category_name: {
                     ...productFields.category_name,
                     disabled: true
                  },
                   product_name: productField.product_name
             };
           }

我想在短于category\u name的情况下,对每个条件使用多次

使用
产品名称
值中的条件运算符:

newProductFields = {
    category_name: {
        ...productFields.category_name,
        disabled: true
    },
    product_name: dataSource
        ? { ...productFields.product_name }
        : productField.product_name
};

否则
就足够了;您不需要检查反向条件。至于其余的,将对象保持在条件之外,只更改
product\u name
productFields
vs
productField
是打字错误吗?为什么对
{…productFields.product\u name,}
使用扩展语法?为什么不干脆
productFields.product\u name