我再次遇到这个问题,现在真的需要知道如何正确地编写这个数组。
我有一个下拉框,根据所选的值,它将通过字段集的ID显示特定的字段集。
在某些情况下,下拉框中的两个不同值可能会调用相同的字段集。因此,例如,如果我选择横幅,将显示多个字段集;如果我选择主页更新将显示相同的字段集。因此,我希望我的数组基本上是>>如果在项目类型下拉框中选择的值等于横幅或主页更新,则显示指定的字段集。问题是,只有第一个选项有效。在这种情况下,Banners。当我选择主页更新时,不会显示任何内容。
有人知道谁应该正确写入这个数组吗?我有很多类型需要编码,数组是最清晰的编写方法,但我无法克服这个障碍。请帮忙。下面是数组的一部分。
var projectTypes = new Array (
{id : '660' , value:('Banners' ||'Homepage Updates')},
{id : '659' , value:('Banners' || 'Homepage Updates')},
{id : '661' , value:'Banners'},
{id : '662' , value:'Banners'},
{id : '663' , value:'Banners'},
{id : '668' , value:'Redirect'},
{id : '229' , value:'Affiliates'},
{id : '236' , value:'Affiliates'},
{id : '242' , value:'Affiliates'},
{id : '250' , value:'Affiliates'},
{id : '251' , value:'Resources'},
{id : '375' , value:'Resources'},
{id : '376' , value:'Resources'},
{id : '377' , value:'Ads'},
{id : '237' , value:'Ads'}
);
首先,表达式('Banners' ||'Homepage Updates')
将始终求值为'Banners'
逻辑运算符OR(写为||
)被评估为:
boolean OR boolean
由于第一个表达式的参数是一个不为空的String,因此它会自动转换为true
值(因为自动类型转换。
在您的情况下,我建议您为对象使用一组可能的值
这样,你可以选择合适的一个:
var projectTypes = new Array (
{id : '660' , value: ['Banners', 'Homepage Updates']},
{id : '659' , value: ['Banners', 'Homepage Updates']},
{id : '661' , values: ['Banners']},
{id : '662' , values: ['Banners']},
{id : '663' , values: ['Banners']},
{id : '668' , values: ['Redirect']},
{id : '229' , values: ['Affiliates']},
{id : '236' , values: ['Affiliates']},
{id : '242' , values: ['Affiliates']},
{id : '250' , values: ['Affiliates']},
{id : '251' , values: ['Resources']},
{id : '375' , values: ['Resources']},
{id : '376' , values: ['Resources']},
{id : '377' , values: ['Ads']},
{id : '237' , values: ['Ads']}
);
如果我理解正确,并且你想访问一些基于值的id,你可以这样组织你的对象:
var projectTypes = {
'Banners' : [660, 659, 661, 662, 663],
'Homepage Updates' : [660, 659],
'Redirect' : [668],
'Affiliates' : [229, 236, 242, 250],
'Resources' : [251, 375, 376],
'Ads' : [237, 377]
};