将对象数组转换为可读字符串?

时间:2019-05-20 20:19:14

标签: javascript

我正在尝试将对象数组转换为可以与之进行比较的常规数组。

$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]]);
                    }

0 个答案:

没有答案