使用循环在数组中映射对象及其名称

时间:2017-05-10 12:25:21

标签: javascript arrays mapping

我有一个带有一些对象的数组:

var myArray = [{
    'id': 'first',
    'value': 'firstValue'
}, {
    'id': 'second',
    'value': 'secondValue'
}, {
    'id': 'third',
    'value': 'thirdValue'}, 
etc.];

我正在尝试使用循环添加值,以便我有这样的东西:

var myArray = [{
    'id': 'first',
    'value': 'firstValue',
    'inc1' : 1
}, {
    'id': 'second',
    'value': 'secondValue'
    'inc2' : 2
}, {
    'id': 'third',
    'value': 'thirdValue'
    'inc3' : 3
}];

我知道这与映射

myArray.forEach(function(o, i) { 
    o.inc = i + 1;                 
});

我可以将结果递增,但如何获取名称inc1,inc2,inc3 ......?

1 个答案:

答案 0 :(得分:4)

您可以将属性的括号表示法用作property accessor,例如

object.property    // dot notation
object['property'] // bracket notation

var myArray = [{ id: 'first', value: 'firstValue' }, { id: 'second', value: 'secondValue' }, { id: 'third', value: 'thirdValue' }];

myArray.forEach(function (o, i) {
    o['inc' + (i + 1)] = i + 1;
    //^^^^^^^^^^^^^^^^ use brackets and property as string
});

console.log(myArray);
.as-console-wrapper { max-height: 100% !important; top: 0; }