javascript - 如何在 Javascript 中访问对象数组值

标签 javascript arrays object

我有一个从 mongoose find 方法返回的对象数组。但是它的格式如下:

var value = [{'value': {'year': 2018, 'month':3, 'count': 123}}];

如何将其转换为以下内容:

var value = [{'year': 2018, 'month':3, 'count': 123}];

我在下面尝试转换但仍然打印出原始格式。

var result = [];
result.push(value);

var arr = [];
Object.keys(result).forEach(function(item) {
     arr.push(result[item]);
     console.log(result[item].year); //undefined
     console.log(result[item]['year']; //undefined
})
console.log(arr);

下面是获取方法。

       function findStats(result, cb) {
            monthly_order.find({})
            .select('-_id')
            .sort({
                    "_id.year": 1,
                    "_id.month": 1
                })
            .exec(function (err, result) {
                if (err) {
                    console.log('Error find: ', err);
                    return cb(err);
                }
                if(!result){
                    return cb({'message':'No Order.'});
                }else{
                    console.log(result);
                    return cb(null, result);
                    //var arr = result.map(x => x.value); 
                    //console.log(arr);
                    //return cb(null, arr);
                }
            }); 
        }

enter image description here

使用.map()解决方案 enter image description here

原始输出 enter image description here

最佳答案

只需将原数组中每一项的.value属性.map到新数组即可:

var valueArr = [{'value': {'year': 2018, 'month':3, 'count': 123}}];
var newArr = valueArr.map(({ value }) => value);
console.log(newArr);

请注意,此处内存中仍然只有一个对象 - 对一个变量名的更改将导致对另一个变量名的更改。如果您想避免这种情况,请在 .map 回调中传播 value 对象:

var valueArr = [{'value': {'year': 2018, 'month':3, 'count': 123}}];
var newArr = valueArr.map(({ value }) => ({ ...value }));
console.log(newArr);

关于javascript - 如何在 Javascript 中访问对象数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53735059/

相关文章:

javascript - 配置 ContentFlow 时出现问题

javascript - 尝试渲染数组时 react : receiving Uncaught Error: Objects are not valid as a React child,

java - 在Java中通过txt文件创建对象到数组中

javascript - 初级 JavaScript 模式

javascript - 如何从数组中仅获取不重复的值

javascript - 自定义对象内的范围问题

javascript - 在 React Native 中从应用程序本身的 web View 重定向到移动应用程序

javascript - highcharts:个人系列赛转变

javascript - AngularJs 中的部分模板未加载

c - 快速排序实现在 C 中不排序