繁体   English   中英

如何从数组中删除空数组值(“”)?

[英]How to remove empty array values ("") from an array?

我有一个二维数组,它是从带有 jQuery 的 html 表生成的,但有些值是空的,所以显示""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因,并非所有这些值都被删除。

Output: https://imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

我很惊讶没有人在这里给出正确准确的答案。

在此处的所有基于 Boolean 的表达式中,您将过滤您想要保留的结果。 例如 - "0"等。

array.filter(item => item !== '')

我有一个二维数组,它是使用jQuery的html表生成的,但是有些值是空的,因此显示为""

如何删除空值?

  <table>    
    <tr>
      <th>1A</th>
      <th>1B</th>
      <th>1C</th>
    </tr>
    <tr>
      <td>2A</td>
      <td>2B</td>
      <td>2C</td>
    </tr>
    <tr>
      <td></td>
      <td>3B</td>
      <td>3C</td>
    </tr>
    <tr>
      <td></td>
      <td></td>
      <td>4C</td>
    </tr>
  </table>
<script>
    var columns = $('tr').first().children().map(function(i) {
        return [
            $('tr').map(function(){
                return $(this).children().eq(i).text()
            }).get()
        ]
    }).get();
<script>

我已经尝试过以下代码:

for( var i = 0; i < columns[0].length; i++){ 
   if ( columns[0][i] === "") {
    columns[0].splice(i, 1); 
   }
}

它适用于一些空值,但由于某种原因并非所有值都被删除。

输出: https : //imgur.com/e7BAdQK

在 ES6 中,假设您有以下数组:

arr = [1, 2, 3, '', false, '4'];

并且您想从数组中删除'' (这是一个空值)。 你可以做:

const filter = (...args) => args.filter(el => el !== '');
console.log(filter(...arr));
[1, 2, 3, false, "4"] // Output

或使用地图(常规JS)

const myArr = [1, 2, '', '4'];

noEmptyStringInThisArray = [];

myArr.map((elem) => {
    if (elem !== '') {
    noEmptyStringInThisArray.push(elem);
    }
})

console.log(noEmptyStringInThisArray);
// [1, 2, "4"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM