我正在尝试使用 Javascript 删除产品 ID 数组中的破折号和后面的所有内容。但如果破折号位于产品 ID 的中间,则不会。例如产品 ID:
["630932-8", "640993-8", "1951-83044226", "641452-10", "1924-57044108", "630695-8 DD/F", "641058-8", "630932-20", "630695-14 DD/F", "630695-22 D/DD", "630695-12 C/D", "661049-6", "661050-4", "630692-8 C/D", "630513-38 G", "630513-36 F", "630655-36 DD", "630695-8 C/D", "661049-4", "630695-16 C/D"]
这是在标签管理系统中使用的,需要在“-”之后删除所有内容,这样就可以了
["630932", "640993", "1951-83044226", "641452", "1924-57044108", "630695", "641058", "630932", "630695", "630695", "630695", "661049", "661050", "630692", "630513", "630513", "630655", "630695", "661049", "630695"]
会有一些有 4 位数字,然后是破折号,而那些需要保留。产品 ID 当前填充在数据层中,其中包含“-”,它们由 utag.data.product_skus 引用
最佳答案
您可以使用 map()
和 split()
。
- 在数组上使用
map()
。 split()
-
的所有字符串。- 检查
split()
结果的第一部分是否有长度4
然后返回原始字符串。 - 否则返回从
split()
中得到的结果的第一部分
let arr = ["630932-8", "640993-8", "1951-83044226", "641452-10", "1924-57044108", "630695-8 DD/F", "641058-8", "630932-20", "630695-14 DD/F", "630695-22 D/DD", "630695-12 C/D", "661049-6", "661050-4", "630692-8 C/D", "630513-38 G", "630513-36 F", "630655-36 DD", "630695-8 C/D", "661049-4", "630695-16 C/D"]
let res = arr.map(x => {
let parts = x.split('-');
return parts[0].length === 4 ? x : parts[0];
})
console.log(res)
关于javascript - 如何使用 JavaScript 删除数组中字符后的数字和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56303514/