按字段名称移动新 JS 过滤数组中的 JS 数组行

Move JS arrays rows in a new JS filtered array by field name

我有 json 格式的 JS 数组,例如这个:

一旦用户看到所有行,就可以选择仅按特定顺序过滤特定字段。我可以过滤这些字段,但我现在正在尝试让它们也按特定顺序重新排序。

例如,用户按特定顺序选择了这三个字段,请查看右侧列表:

我只想按特定顺序过滤掉那三列:

开放时间

打开方式

extdoorid

我现在有什么选择,如何才能将这些特定行推送到一个新数组中,稍后我将用作过滤数组?

您可以 run through your array 并在其中检查属性名称是否在您的字段列表中。您在一个对象中添加您需要的内容,然后将其推送到您的列表。

var arr = [
  { opentime: 'opentime1', openingmode: 'openingmode1', extdoorid: 'extdoorid1', automaticchangestableid: 'acsid1', extdoorid: 'edid1'},
  {opentime: 'opentime2', openingmode: 'openingmode2', extdoorid: 'extdoorid2', automaticchangestableid: 'acsid2', extdoorid: 'edid2'},
  {opentime: 'opentime3', openingmode: 'openingmode3', extdoorid: 'extdoorid3', automaticchangestableid: 'acsid3', extdoorid: 'edid3'}
  ];
var fieldList = [ 'automaticchangestableid',  'opentime', 'extdoorid'];
var newArr = [];

angular.forEach(arr, function(value, index) {
  var obj = {};
  angular.forEach(fieldList, function(field, fieldIndex){
      obj[field] = value[field];
  });
  newArr.push(obj);
});

console.log(newArr);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>