首页 > 解决方案 > 如果它在引号内,则附加到数组值中

问题描述

输入数组

var array = [
  'name',
  '"Mobile Number"',
  '"mobile1,mobile2"',
  'email2',
  'Address',
  'email21'
]

var matchkey = 'mobile1,mobile2'

res = res.map(function (value) {
if(value==matchkey){
return value+".string()"
}
else {
return value+".auto()"
}
            
        })

上述代码的电流输出

[
  'name.auto()',
  '"Mobile Number".auto()',
  '"mobile1,mobile2".auto()',
  'email2.auto()',
  'Address.auto()',
  'email21.auto()'
]

预期输出;

[
  'name',
  '"Mobile Number.auto()"',
  '"mobile1,mobile2.string()"',
  'email2.auto()',
  'Address.auto()',
  'email21.auto()'
]

注意:我不想删除单引号内的双引号,因为它是进一步处理所必需的

标签: javascriptarraystypescript

解决方案


您的匹配键不存在于您的数组中。

数组中的字符串:'"mobile1,mobile2"'

匹配键:'mobile1,mobile2'

您必须将匹配键更改为:

var matchkey = '"mobile1,mobile2"'

另外,我不明白你的目的,但如果你的预期输出是没有函数访问的名称字符串,那么你应该添加一个 else if 语句:

if(value == matchkey){
    return value+".string()";
} else if(value == 'name') {
    return value;
} else {
    return value+".auto()";
}

推荐阅读