javascript - 如何使用 JavaScript 删除数组中字符后的数字和字母

标签 javascript arrays

我正在尝试使用 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/

相关文章:

c++ - 实现哈希表,insert函数导致 "scope"错误

php - 如何组合两个数组而不重复值?

c - 如何在C中复制数组的数组? (字符串数组到另一个字符串数组)

Javascript 连接/拆分替代语法

javascript - 预览 html 页面而不打开它

ruby - 如何从特定(已知)模式映射新数组?

javascript - 获取值不相等的随机数组元素

回发前的 ASP.NET TreeView javascript

javascript - 如何在 Jenkins 中设置和运行 Angular JS Protractor 测试?

javascript - 查找日期范围内的可用天数