按字段名称移动新 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>
我有 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>