首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数组中的拼接数据

数组中的拼接数据
EN

Stack Overflow用户
提问于 2018-10-15 06:11:53
回答 2查看 803关注 0票数 7

我正在做一个关于数据映射的项目。实现了几项检查:

  • 良好导入文件
  • 表选择
  • 表的列选择
  • 数据类型

我赞成现在选择专栏的那一部分。我把这些不同的选择放在一个数组里。问题是,如果我想删除数组中的一个选项,所有的数据都会被删除!我正在使用这个插件:http://wenzhixin.net.cn/p/multiple-select/docs/

代码语言:javascript
复制
var choiceFields = [];                  
$('#selectFields').multipleSelect({
    filter: true,
    onClick: function(view) 
    {
        choiceFields.push(view.value);
        var length = choiceFields.length-1;
        if(view.checked === false)
        {
            choiceFields.splice(view.value);
        }
        console.log(choiceFields);
    }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.css" rel="stylesheet"/>
<script src="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.js"></script>
<div class="select-box">
    <label for="selectFields"><span class="label-FieldChoice">Choice fields</span>  </label>
    <select id="selectFields" multiple="multiple" style="display: none;">
        <option value="id">id</option>
        <option value="username">username</option>
        <option value="username_canonical">username_canonical</option>
        <option value="email">email</option>
        <option value="email_canonical">email_canonical</option>
        <option value="enabled">enabled</option>
        <option value="salt">salt</option>
        <option value="password">password</option>
        <option value="last_login">last_login</option>
        <option value="confirmation_token">confirmation_token</option>
        <option value="password_requested_at">password_requested_at</option>
        <option value="roles">roles</option>
        <option value="lastName">lastName</option>
        <option value="firstName">firstName</option>
    </select>
    
</div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-15 06:15:29

你可以这样做:

代码语言:javascript
复制
var choiceFields = [];
$('#selectFields').multipleSelect({
  filter: true,
  onClick: function(view) {
    choiceFields.push(view.value);
    var length = choiceFields.length - 1;
    if (view.checked === false) {
      choiceFields = jQuery.grep(choiceFields, function(value) {
        return value != view.value;
      });
    }
    console.log(choiceFields);
  }
});

我变了:

代码语言:javascript
复制
choiceFields.splice(view.value);

至:

代码语言:javascript
复制
choiceFields = jQuery.grep(choiceFields, function(value) {
  return value != view.value;
});

Demo

代码语言:javascript
复制
var choiceFields = [];
$('#selectFields').multipleSelect({
  filter: true,
  onClick: function(view) {
    choiceFields.push(view.value);
    var length = choiceFields.length - 1;
    if (view.checked === false) {
      choiceFields = jQuery.grep(choiceFields, function(value) {
        return value != view.value;
      });
    }
    console.log(choiceFields);
  }
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.css" rel="stylesheet" />
<script src="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.js"></script>
<div class="select-box">
  <label for="selectFields"><span class="label-FieldChoice">Choice fields</span>  </label>
  <select id="selectFields" multiple="multiple" style="display: none;">
    <option value="id">id</option>
    <option value="username">username</option>
    <option value="username_canonical">username_canonical</option>
    <option value="email">email</option>
    <option value="email_canonical">email_canonical</option>
    <option value="enabled">enabled</option>
    <option value="salt">salt</option>
    <option value="password">password</option>
    <option value="last_login">last_login</option>
    <option value="confirmation_token">confirmation_token</option>
    <option value="password_requested_at">password_requested_at</option>
    <option value="roles">roles</option>
    <option value="lastName">lastName</option>
    <option value="firstName">firstName</option>
  </select>

</div>

票数 6
EN

Stack Overflow用户

发布于 2018-10-15 06:20:16

Array.splice()中,它需要3个参数array.splice(index, howMany, [element1][, ..., elementN])

开始更改数组的索引−索引。

howMany−表示要删除的旧数组元素数的整数。如果howMany为0,则不会删除任何元素。

element1,.,elementN−要添加到数组中的元素。如果不指定任何元素,splice只需从数组中删除这些元素。

但您没有在回答中提供howMany参数,请提供此值以从数组中删除特定索引

前-

代码语言:javascript
复制
var choiceFields = [];                  
$('#selectFields').multipleSelect({
filter: true,
onClick: function(view) 
{
   
    var length = choiceFields.length-1;
    if(view.checked === false)
    {
        var index = choiceFields.indexOf(view.value);  // Finding Index of Item

        choiceFields.splice(index,1);   // Splicing one element from index
    }
    else{
     choiceFields.push(view.value);  // if false we do not push value
    }
    console.log(choiceFields);
},

onCheckAll: function() 
{
     
     
     choiceFields = [];    // delete all previous values
     var options = document.getElementById('selectFields');
     for(var i=0;i<options.length;i++){
        choiceFields.push(options[i].text);
     }
   
   console.log(choiceFields);

}
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.css" rel="stylesheet"/>
<script src="https://rawgit.com/wenzhixin/multiple-select/master/multiple-select.js"></script>
<div class="select-box">
    <label for="selectFields"><span class="label-FieldChoice">Choice fields</span>  </label>
    <select id="selectFields" multiple="multiple" style="display: none;">
        <option value="id">id</option>
        <option value="username">username</option>
        <option value="username_canonical">username_canonical</option>
        <option value="email">email</option>
        <option value="email_canonical">email_canonical</option>
        <option value="enabled">enabled</option>
        <option value="salt">salt</option>
        <option value="password">password</option>
        <option value="last_login">last_login</option>
        <option value="confirmation_token">confirmation_token</option>
        <option value="password_requested_at">password_requested_at</option>
        <option value="roles">roles</option>
        <option value="lastName">lastName</option>
        <option value="firstName">firstName</option>
    </select>
    
</div>

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

https://stackoverflow.com/questions/52810658

复制
相关文章

相似问题

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