Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

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_Typescript - Fatal编程技术网

Javascript 如果数组值在引号内,则将其追加到数组值中

Javascript 如果数组值在引号内,则将其追加到数组值中,javascript,arrays,typescript,Javascript,Arrays,Typescript,输入阵列 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()&

输入阵列

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()'
]

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

您的数组中不存在匹配键

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

匹配键:“手机1,手机2”

您必须将匹配密钥更改为:

var matchkey = '"mobile1,mobile2"'
另外,我不理解您的目的,但是如果您预期的输出是在没有函数访问的情况下使用名称字符串,那么您应该添加一个else if语句:

if(value == matchkey){
    return value+".string()";
} else if(value == 'name') {
    return value;
} else {
    return value+".auto()";
}
也许是这个

var数组=[
“姓名”,
"流动电话号码",,
"mobile1,mobile2",,
"电邮2",,
"地址",,
“email21”
]
var matchkey=''mobile1,mobile2''
const res=array.map(函数(值){
返回值==matchkey?value.slice(0,-1)+“.string()\”:
value.endsWith(“”)?value.slice(0,-1)+.auto()“+””:value++.auto()
})

console.log(res)
您可以使用regex进行替换:

const result=array.map((元素)=>
元素。替换(/^(“?)(*?)(*?)$/,函数(){
返回`${
论点[1]
}${arguments[2]+(arguments[2]==matchkey?'.string()':'.auto()')}${arguments[3]}`;
})

)我想如果你从
value==matchkey
改为
value,includes(matchkey)
将是你想要的输出

var数组=[
“姓名”,
"流动电话号码",,
"mobile1,mobile2",,
“电邮2”,
“地址”,
“电邮21”,
];
var matchkey=“mobile1,mobile2”;
res=array.map(函数(值){
if(值包括(匹配键)){
返回值+“.string()”;
}否则{
返回值+“.auto()”;
}
});
console.log(res);