【问题标题】:filter data and map the only received data过滤数据并映射唯一接收到的数据
【发布时间】:2018-11-02 03:31:18
【问题描述】:

我遇到了问题。

var arr = ['VBH', 'KTL', 'PVC', 'IF & AF', 'BC', 'CC&HC', 'UBS', 'FAD&DVD'];
var obj = [
             {"materialTypeID":9,"name":"","abbreviation":"UBS","count":1,"duns":0,"plantId":0},
             {"materialTypeID":18,"name":null,"abbreviation":"PVC","count":1,"duns":0,"plantId":0},
             {"materialTypeID":7,"name":"","abbreviation":"FAD&DVD","count":4,"duns":0,"plantId":0}
          ];

我希望结果以排序格式显示为 arr 变量显示,例如 VBH 对象或 KTL 对象(如果他们找到的话)。

[       
{"materialTypeID":18,"name":null,"abbreviation":"PVC","count":1,"duns":0,"plantId":0},
{"materialTypeID":9,"name":"","abbreviation":"UBS","count":1,"duns":0,"plantId":0},
{"materialTypeID":7,"name":"","abbreviation":"FAD&DVD","count":4,"duns":0,"plantId":0}
]

在java脚本中,我想实现。

谢谢,

【问题讨论】:

  • 提供到目前为止您尝试过的代码示例
  • 从你的问题中不清楚你想如何对数组进行排序。

标签: javascript angular


【解决方案1】:

循环arr 并使用过滤器从obj 中获取元素。 filter 将返回一个新数组,检查这个新数组的长度是否大于 0 ,然后使用 push 放入元素

var arr = ['VBH', 'KTL', 'PVC', 'IF & AF', 'BC', 'CC&HC', 'UBS', 'FAD&DVD']
var obj = [{
  "materialTypeID": 9,
  "name": "",
  "abbreviation": "UBS",
  "count": 1,
  "duns": 0,
  "plantId": 0
}, {
  "materialTypeID": 18,
  "name": null,
  "abbreviation": "PVC",
  "count": 1,
  "duns": 0,
  "plantId": 0
}, {
  "materialTypeID": 7,
  "name": "",
  "abbreviation": "FAD&DVD",
  "count": 4,
  "duns": 0,
  "plantId": 0
}]

let sortedArray = [];

arr.forEach(function(item) {
  let getElem = obj.filter(function(items) {
    return items.abbreviation === item

  })
  if (getElem.length > 0) {
    sortedArray.push(getElem[0])
  }

})

console.log(sortedArray)

【讨论】:

    【解决方案2】:

    您似乎想按 materialTypeID 递减排序。

    您的问题已经在那里解决了:Javascript object list sorting by object property

    obj.sort(function(a, b) { 
        return b.materialTypeID - a.materialTypeID;
    })
    

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 2022-08-20
      • 2012-09-12
      • 2021-04-27
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多