我正在尝试将对象数组转换为可以与之进行比较的常规数组。
$scope.refRFRInfo
Array(6) [Object, Object, Object, …]
{Object {rfrInformationID: 3000, fiscalYear: 2020, rfrNumber: NaN, …}
所以我有这个:
let newArray = $scope.Info.map(a => Object.keys(a).map(k => a[k]))
结果显示为:
Array(6) [Array(18), Array(18), Array(18), …]
Array(18) [3000, 2020, NaN, …]
我希望将值标记为它们的类型,因此要使用“ rfrInformationID”,“ fiscalYear”和“ rfrNumber”。但是我不知道该怎么做。
基本上,我想将单个“ fiscalYear”输入与所有$ scope.Info.fiscalYear值的列表进行比较。但是当它们是一个对象时,它不允许我选择要比较的值。我还需要该对象保留一个对象,以便可以在对象完整的情况下对表头进行排序。如果有更简单的方法来达到最终结果,请告诉我。
编辑:
基于Object.entries,我想到了:
var map = new Map(Object.entries(results.data));
map.forEach(([key, value]) => $scope.rfrInfo.push(`${key}: ${value}`));
但是第二行中断。看起来也将我的对象嵌套到另一个对象中。
编辑:这是我正在使用的全部功能
function init() {
ContractsService.getRFRInformation()
.then(function (results) {
$scope.Info = results.data;
angular.forEach($scope.Info, function (value) {
$scope.number.push(value.rfrNumber);
}
});
$scope.loading = false;
});
}
在上面的“ forEach”中,我仅传递了rfrNumber的值。我的$ scope.Info对象中有14个字段。
这是我尝试过的:
$scope.newInfo = [];
//Closest to intended result, but doesn't set names like "fiscalYear" or "rfrNumber" so
//I can't use it for validation
$scope.Info.forEach(_ => _.rfrNumber = (+_.Number));
let newArray = $scope.Info.map(a => Object.keys(a).map(k => a[k]));
newArray;
//Produces result where everything is further nested
var map = new Map(Object.entries(results.data));
map;
//None of these are working
map.forEach(([key, value]) => $scope.newInfo.push('${key}: ${value}'));
for (var { Object: { rfrInformationID: ID, fiscalYear: FY, rfrNumber: number } } of results.data) {
$scope.newInfo.push(Object);
}
JSON.stringify(map);
map;
JSON.stringify(results.data);
results.data;
let {
results: [
{
rfrInformationID: ID,
fiscalYear: FY,
rfrNumber: number
},
],
} = metadata;
}
var arr = [];
for (var i in results.data) {
if (obj.hasOwnProperty(i)) {
arr.push([i, results.data[i]]);
}