使用JavaScript在输入文本字段中创建数组
我是JS社区的新手,我正在练习JS。我有一个输入文本字段,用户将在其中输入数组,如使用JavaScript在输入文本字段中创建数组,javascript,jquery,Javascript,Jquery,我是JS社区的新手,我正在练习JS。我有一个输入文本字段,用户将在其中输入数组,如1,2-5,6-9,10,12,13-15。我正在尝试扩展这个数组,比如1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 <input class="inputC" id="inputC" type="text" value="" placeholder="Select Control"
1,2-5,6-9,10,12,13-15
。我正在尝试扩展这个数组,比如1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
<input class="inputC" id="inputC" type="text" value="" placeholder="Select Control" required />
注意:您应该指定基于给定输入在输出中添加
11
的逻辑
您应该在-
上进行拆分,也可以在map回调函数中进行拆分
演示:
var items=$('#inputC').val().split(',');
items=items.flatMap(i=>{
var列表=[];
i=i.分割('-');
如果(i.长度>1){
对于(var j=i[0];j
设str='1,2-5,6-9,10,12,13-15';
str.split(',').map((e)=>{
如果(例如包括('-')){
常量值=e.split('-');
const end=parseInt(值[1]);
让start=parseInt(值[0]);
while(开始<结束){
log(start);start++;
}
}否则{
console.log(parseInt(e))
}
})
这是一个很好的场景,在这个场景中,您需要创建一个小型派生的网络组件,它可以满足您的需要:
<input is="array-input" />
class ArrayInput扩展了HTMLInputElement{
获取值(){
让inter=super.value.split(',').map(el=>el.trim());
设ret=[];
用于(国际标准){
常量[开始,结束]=高程拆分('-')映射(编号);
如果(isNaN(开始))继续;
如果(!end | | start>end){
后推(启动);
}else if(开始===结束){
后推(启动)
}else if(开始<结束){
for(让i=start;i您需要检查是否有带“-”的项在输入中排除11
是没有任何意义的,那么11
在输出中是如何的。您可以直接输入1-15
?您允许重复吗?@ManasKhandelwal这只是一个例子。@connexo不,先生。它应该是唯一的谢谢您,先生Help@aryanvishwakarma你是始终欢迎。为了更好地理解,我尽可能地将代码写得干净。如果这对您真的有帮助,请将其标记为已接受。谢谢,先生course@aryanvishwakarma非常感谢!纯代码答案几乎永远都不是好答案。您的答案也不例外。谢谢您的帮助
<input is="array-input" />