代码之家  ›  专栏  ›  技术社区  ›  Abhi

获取非索引的数组属性

  •  0
  • Abhi  · 技术社区  · 7 年前

    我有一个数组,它附加了如下属性:

        let arVar = [[{a: 1, b:2},{c:3, d:4}, {e:5}]]
         arVar.item_id = "9";
         arVar.type_id = "1";
    

    v arVar ledgerTransactionsArray . 具有我需要的属性,以便我可以将其添加到新的 v .

    v 可以拥有或是否会拥有任何财产

    arVar.type_id arVar.item_id 这样我就可以将它附加到另一个数组:

    $scope.ledgerTransactionsArray = $scope.ledgerTransactionsArray.map(function(v) {
    //v is the array with properties that i need to attach to new v
    //v has item_id, type_id
          if (Array.isArray(v)) {
            console.log(v, "typeidcheck");
            v = v.map(function(subArrayObj) {
    
              for (let key in subArrayObj) {
                if (
                  key == "credit_amount" || key == "debit_amount" ||
                  key == "credit_total" || key == "debit_total"
                ) {
                  if (subArrayObj[key]) {
                    subArrayObj[key] = parseFloat(subArrayObj[key]).toLocaleString(undefined, {
                      maximumFractionDigits: 2,
                      minimumFractionDigits: 2
                    });
    
                  }
                }
              }
    
              return subArrayObj;
            })
          }
        })
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   Ray Toal    7 年前

    Object.keys . 它甚至适用于数组。

    > let arVar = [[{a: 1, b:2},{c:3, d:4}, {e:5}]]
    > arVar.item_id = "9";
    '9'
    > arVar.type_id = "1";
    '1'
    > Object.keys(arVar)
    [ '0', 'item_id', 'type_id' ]
    

    如果需要删除数字索引,如 '0' 粗加工(不推荐)是:

    > Object.keys(arVar).filter(k => !/\d+/.test(k))
    [ 'item_id', 'type_id' ]
    

    或者更好,正如尼萨格指出的:

    > Object.keys(arVar).filter(k => isNaN(k))
    [ 'item_id', 'type_id' ]