如何使用javascript从数组的每个项中删除字符串的特定部分?

如何使用javascript从数组的每个项中删除字符串的特定部分?,javascript,arrays,string,loops,Javascript,Arrays,String,Loops,鉴于以下情况: var arr = [ "one,two,three", "four,five,six,seven", "eight,nine,ten", "11,12,13,14" ]; 从数组中的每个元素中删除第二个单词的最佳方法是什么?阵列的预期输出为: arr = [ "one,three", "four,six,seven", "eight,ten", "11,13,14" ]; 我觉得最合乎逻辑的方法是使用for循环

鉴于以下情况:

var arr = [
    "one,two,three",
    "four,five,six,seven",
    "eight,nine,ten",
    "11,12,13,14"
];
从数组中的每个元素中删除第二个单词的最佳方法是什么?阵列的预期输出为:

arr = [
    "one,three",
    "four,six,seven",
    "eight,ten",
    "11,13,14"
];
我觉得最合乎逻辑的方法是使用for循环遍历数组,并从每个元素中删除索引1,如下所示:

for(var i=0; i < arr.length; i++) {
    i.splice(1,1).join(';');
}
for(变量i=0;i

(在循环中,我也尝试了
arr[I].splice(1,1).join(“;”);
)---但这两种方法都没有返回期望的结果。我做错了什么?最有效的方法是什么?

您需要先拆分阵列,然后删除元素

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
对于(变量i=0;i控制台日志(arr)您需要先拆分数组,然后删除元素

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
对于(变量i=0;i控制台日志(arr)您可以对字符串使用正则表达式,它查找逗号、任意字符、非gready和另一个逗号,该逗号不包括在替换中

var arr=[“一、二、三、四、五、六、七、八、九、十、十一、十二、十三、十四”];
arr=arr.map(函数(a){
返回a.replace(/,*)(?=,)/,'';
});

控制台日志(arr)您可以对字符串使用正则表达式,它查找逗号、任意字符、非gready和另一个逗号,该逗号不包括在替换中

var arr=[“一、二、三、四、五、六、七、八、九、十、十一、十二、十三、十四”];
arr=arr.map(函数(a){
返回a.replace(/,*)(?=,)/,'';
});

控制台日志(arr)首先,必须在数组中打断字符串,以便:

elements = arr[i].split(',');
然后拼接第二个元素并将字符串连接回:

elements.splice(1,1)
result = elements.join(',');
最后,用新字符串替换字符串:

arrs[i] = result
总结:

for(var i=0; i<arr.length; i++){
    elements = arrs[i].split(',');
    elements.splice(1,1);
    arrs[i] = elements.join(',');
}

for(var i=0;i首先必须在数组中断开字符串,以便:

elements = arr[i].split(',');
然后拼接第二个元素并将字符串连接回:

elements.splice(1,1)
result = elements.join(',');
最后,用新字符串替换字符串:

arrs[i] = result
总结:

for(var i=0; i<arr.length; i++){
    elements = arrs[i].split(',');
    elements.splice(1,1);
    arrs[i] = elements.join(',');
}

for(var i=0;iArray.prototype.splice
函数返回删除的项

您需要存储数组,删除项,最后返回数组

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
功能字(arr、pos、长度){
length=length | | 1;//要删除的默认数字是1。
返回arr.map(函数(项){
var words=item.split(',');
words.splice(pos,length);//splice将项目移除到位。
返回单词。连接(',');
});
}
var arr2=拼接字(arr,1);
document.body.innerHTML=JSON.stringify(arr2,null,4);

body{font-family:monospace;white-space:pre;}
函数返回删除的项

您需要存储数组,删除项,最后返回数组

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
功能字(arr、pos、长度){
length=length | | 1;//要删除的默认数字是1。
返回arr.map(函数(项){
var words=item.split(',');
words.splice(pos,length);//splice将项目移除到位。
返回单词。连接(',');
});
}
var arr2=拼接字(arr,1);
document.body.innerHTML=JSON.stringify(arr2,null,4);
正文{font-family:monospace;white-space:pre;}
给你:

arr.map(x => x.replace(x.match(/,[^,]*/),""))

结果:

["one,three", "four,six,seven", "eight,ten", "11,13,14"]
正则表达式查找第一个逗号(
),并获取后面不是逗号的所有内容(
[^,]*
)。字符串的这一部分将不替换为任何内容(
“”

map
方法将此函数应用于数组的每个元素。

给您:

arr.map(x => x.replace(x.match(/,[^,]*/),""))

结果:

["one,three", "four,six,seven", "eight,ten", "11,13,14"]
正则表达式查找第一个逗号(
),并获取后面不是逗号的所有内容(
[^,]*
)。字符串的这一部分将不替换为任何内容(
“”

map
方法将此函数应用于数组的每个元素。

您可以使用来更改数组的每个项,并使用来从字符串中删除第二个值

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
arr=arr.map(函数(val){
返回val.replace(/([\w]+),[\w]+,(.*)/,“$1,$2”);
});
console.log(arr);
您可以使用来更改数组的每一项,并使用来从字符串中删除第二个值

var-arr=[
“一,二,三”,
“四,五,六,七”,
“八,九,十”,
"11,12,13,14"
];
arr=arr.map(函数(val){
返回val.replace(/([\w]+),[\w]+,(.*)/,“$1,$2”);
});
console.log(arr);
  • 循环遍历数组中的每个元素
  • 使用split()方法创建逗号分隔元素的数组
  • 使用splice()方法删除阵列中的第二部分
  • 以下是算法:

    for(var i=0; i < arr.length; i++) {  
    var a = arr[i].split(",");  
    a.splice(1,1);  
    arr[i] = a.join();  
    }
    
    for(var i=0;i
  • 循环遍历数组中的每个元素
  • 使用split()方法创建逗号分隔元素的数组
  • 使用splice()方法删除阵列中的第二部分
  • 以下是算法:

    for(var i=0; i < arr.length; i++) {  
    var a = arr[i].split(",");  
    a.splice(1,1);  
    arr[i] = a.join();  
    }
    
    for(var i=0;i