首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按唯一项拆分数组,并使用javascript分隔一些项逗号。

按唯一项拆分数组,并使用javascript分隔一些项逗号。
EN

Stack Overflow用户
提问于 2022-02-24 08:03:42
回答 2查看 88关注 0票数 1

我有两个依赖的下拉列表,第一个列表从array1获取服务,第二个列表根据列表1的结果过滤来自array2的列表。

这就像它应该在这个小提琴上一样工作:小提琴

问题是第二个值有用逗号分隔的值。我需要将它们分开,然后检查值2中的所有其他值,并且只显示一个实例。

“旗(高级)”、“旗(高级)、旗(440克)”、“旗(550克)”

会是

“旗(高级)”、“旗(440克)”、“旗(550克)”

这是我的密码:

代码语言:javascript
复制
function menu2() {
var serviceValue = document.getElementById("service-type").value;
 var el = document.getElementById("media-type");
 var newArray = media.filter(function(r) {return r[1].includes(serviceValue)})
 var currentlyAdded = [];
 el.innerHTML = "";
 newArray.forEach(function(r) {
 if(currentlyAdded.indexOf(r[1]) === -1) {
 var option = document.createElement('option');
  option.text = r[1];
  el.appendChild(option);
  currentlyAdded.push(r[1]);
  }
 })

}

我相信我需要使用.split和.concat,但是我想不出如何将它添加到脚本中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-24 08:10:26

可以使用Set创建具有唯一值的数组。

代码语言:javascript
复制
const str = `Banner (Premium), Banner (Premium), Banner (440gsm)`
const splitted = [...new Set(str.split(`, `))];
console.log(splitted);

票数 1
EN

Stack Overflow用户

发布于 2022-02-24 08:21:31

一种基于split的解决方案

代码语言:javascript
复制
const str = '"Banner (Premium)", "Banner (Premium), Banner (440gsm)", "Banner (550gsm)"'


// desired "Banner (Premium)", "Banner (440gsm)", "Banner (550gsm)"

const desired = str.split('"').filter(x => /[A-Z][a-z]/.test(x)).map( x => {
  const splitted = x.split(',');
  return (splitted.length < 2)?splitted[0]:splitted[1];
});



console.log(desired)

我相信寻找csv你会找到纯粹的正则表达式

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71248828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档