我们有一个如下所示的数组,数组的长度不是常数(可能会增加/减少)。
[255028AD_ABC_DE_2057,261830AD_ABC_FG_2876,.......]
我的目标是只实现每个索引的第一部分,如下所示。
[255028AD,261830AD,.........]
请帮忙。
答案 0 :(得分:4)
试试这个:
var arr = ['255028AD_ABC_DE_2057', '261830AD_ABC_FG_2876'];
arr = arr.map(el => el.split('_')[0]);
console.log(arr);

答案 1 :(得分:1)
使用Array.map()
和String.substr()
函数:
var arr = ['255028AD_ABC_DE_2057', '261830AD_ABC_FG_2876' ],
result = arr.map(v => v.substr(0, v.indexOf('_')));
console.log(result);
v.indexOf('_')
- 找到_
char的第一个位置
v.substr(0, v.indexOf('_'))
- 从位置0
开始提取子字符串到_
字符的第一个位置(获取切片)
答案 2 :(得分:0)
您可以匹配第一个非下划线字符并返回匹配结果的第一项。
@objc public var substituteFontName : String {
get {}
set {}
}
答案 3 :(得分:0)
这样的事情应该有效:
const arr = ['255028AD_ABC_DE_2057','261830AD_ABC_FG_2876'];
const arrModified = arr.map(element =>
element.substr(0, element.indexOf('_')));
console.log(arrModified)
答案 4 :(得分:0)
使用Array.map函数,因此您的代码看起来像这样
[].map(item => item.split('_')[0])
其中[]
是您的数组
在ES5语法中它看起来像
[].map(function(item) {
return item.split('_')[0];
})
希望有所帮助
答案 5 :(得分:0)
只需使用地图https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Array/map
即可带
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/split
喜欢
var array = ["12_bla","13_ble"].map(function (el) { return el.split('_',1)[0]; });
答案 6 :(得分:0)
使用for ... of
:
var arr = ['255028AD_ABC_DE_2057', '261830AD_ABC_FG_2876'];
var index = 0;
for (item of arr) {
arr[index] = item.split('_')[0];
index++;
}
console.log(arr);

答案 7 :(得分:0)
您可能也喜欢
var result = ["255028AD_ABC_DE_2057","261830AD_ABC_FG_2876"].map(s => s.replace(/_.*/,""));
console.log(result);