簡體   English   中英

將值作為單獨的鍵值對推送到數組

[英]Push values to array as separate key value pairs

我有一個項目,我將表格每一行中特定單元格上的屬性(逗號分隔的整數)的值添加到 JS 中的數組中。

我知道如果我創建一個名為 myArray 的數組,則使用myArray.push(121840,121841); myArray.length結果為 2。這是我的預期。 我曾假設(錯誤地)由於 numbers 屬性的值是相同的格式,例如: numbers="121840,121841" ,那么使用myArray.push($(this).attr('numbers')); ,但我被誤認為該數組的長度是 1,而不是 2。

請參閱下面的示例,說明我正在嘗試做什么以及遇到的問題。

給定這樣的表格,我從最后一個單元格的 numbers 屬性中獲取值:

<table border="1" width="100%">
    <tbody emp-id="02" class="" name="Steve Smith">
      <tr>
          <td colspan="4">Steve Smith</td>
      </tr>
      <tr>
          <td></td>
          <td>2</td>
          <td></td>
          <td class="total" numbers="121856,121860">2</td>
      </tr>
    </tbody>
    <tbody emp-id="01" name="Marky Mark">
      <tr>
          <td colspan="4">Marky Mark</td>
      </tr>
      <tr>
          <td>1</td>
          <td></td>
          <td>1</td>
          <td class="total" numbers="121840,121841">2</td>
      </tr>
    </tbody>
</table>

我的 JS 會是:

$('table tbody tr').each(function() {
  $(this).find('td:last').each(function(){
    if ($(this).attr('numbers')) {
        numbers.push($(this).attr('numbers'));
      names.push($(this).parents("tbody").attr('name'));
    }
  });
});

在上面的示例中,數組存儲了正確的數值 (121856,121860,121840,12184),但長度為 2,因為每個單元格的值作為單個元素添加,因此 number[0]=121856 ,121860,而不是 121856。

我將如何更正此問題,以便將屬性中的每個整數添加為單個元素?

JSFiddle:http: //jsfiddle.net/jacbhg0n/3/

任何幫助將不勝感激。

您可以通過使用String.split()方法拆分數字屬性字符串,同時將其推入numbers數組來簡單地實現這一點。

現場演示

 const numbers = []; const names = []; $('table tbody tr').each(function() { $(this).find('td:last').each(function(){ if ($(this).attr('numbers')) { numbers.push($(this).attr('numbers').split(',')); names.push($(this).parents("tbody").attr('name')); } }); }); console.log(numbers.flat());
 <table border="1" width="100%"> <tbody emp-id="02" class="" name="Steve Smith"> <tr> <td colspan="4">Steve Smith</td> </tr> <tr> <td></td> <td>2</td> <td></td> <td class="total" numbers="121856,121860">2</td> </tr> </tbody> <tbody emp-id="01" name="Marky Mark"> <tr> <td colspan="4">Marky Mark</td> </tr> <tr> <td>1</td> <td></td> <td>1</td> <td class="total" numbers="121840,121841">2</td> </tr> </tbody> </table>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM