javascript将值动态设置为对象属性

javascript将值动态设置为对象属性,javascript,Javascript,是否可以将值动态设置为javascript对象。 例如,我有以下对象数组: var result = [ {id: 1,color: ['black']}, {id: 1,color: ['white']}, {id: 1,color: ['green']} ]; 创建另一个时,我要设置所有值color 从数组结果到新对象。基本上我希望它看起来像这样: {id:1, colors: ['black', 'white', 'green']} var result = [

是否可以将值动态设置为javascript对象。 例如,我有以下对象数组:

var result = [
    {id: 1,color: ['black']},
    {id: 1,color: ['white']},
    {id: 1,color: ['green']}
];
创建另一个时,我要设置所有值
color
从数组结果到新对象。基本上我希望它看起来像这样:

{id:1, colors: ['black', 'white', 'green']}
var result = [
    {id: 1,color: ['black']},
    {id: 1,color: ['white']},
    {id: 1,color: ['green']}
];

var object1 = {
    id: 1,
    colors: function(){
        for(i = 1; i < result.length; i++) {
            this.colors.push(result[i].color);
        }
    }
};
我试过这样的方法:

{id:1, colors: ['black', 'white', 'green']}
var result = [
    {id: 1,color: ['black']},
    {id: 1,color: ['white']},
    {id: 1,color: ['green']}
];

var object1 = {
    id: 1,
    colors: function(){
        for(i = 1; i < result.length; i++) {
            this.colors.push(result[i].color);
        }
    }
};
var结果=[
{id:1,颜色:['black']},
{id:1,颜色:['white']},
{id:1,颜色:['green']}
];
var object1={
id:1,
颜色:函数(){
对于(i=1;i

但它不工作,基本上我理解为什么,我只是寻找解决办法。我对javascript非常陌生,所以我需要一些建议。有什么想法吗?

目前,您正在将颜色设置为函数,但希望颜色成为数组

实现这一目标的一种方法是执行以下操作:

var object1 = {
    id: 1,
    colors: []
};

for(var i = 0; i < result.length; i++) {
    object1.colors.push(result[i].color);
}
var object1={
id:1,
颜色:[]
};
对于(变量i=0;i
当前,您正在将颜色设置为函数,但希望颜色为数组

实现这一目标的一种方法是执行以下操作:

var object1 = {
    id: 1,
    colors: []
};

for(var i = 0; i < result.length; i++) {
    object1.colors.push(result[i].color);
}
var object1={
id:1,
颜色:[]
};
对于(变量i=0;i
您可以
forEach
循环以迭代数组
结果

var object1 = {id:1, colors:[]};

result.forEach( function (item)
{
   object1.colors.push(item.color);
});

您可以
forEach
循环以迭代数组
结果

var object1 = {id:1, colors:[]};

result.forEach( function (item)
{
   object1.colors.push(item.color);
});

你可以这样做

var result = [
   {id: 1,color: ['black']},
   {id: 1,color: ['white']},
   {id: 1,color: ['green']}
 ];

var arrResult =  {id:1,colors : []}

result.forEach(function(val,key){            
        arrResult.colors=arrResult.colors.concat(val.color)
})

你可以这样做

var result = [
   {id: 1,color: ['black']},
   {id: 1,color: ['white']},
   {id: 1,color: ['green']}
 ];

var arrResult =  {id:1,colors : []}

result.forEach(function(val,key){            
        arrResult.colors=arrResult.colors.concat(val.color)
})

对你的尝试稍加修改

var object1 = {
    id: 1,
    colors: (function(){
        var ret = [];
        result.forEach(function(item) {
            ret.push(item.color);
        });
        return ret;
    }())
};

对你的尝试稍加修改

var object1 = {
    id: 1,
    colors: (function(){
        var ret = [];
        result.forEach(function(item) {
            ret.push(item.color);
        });
        return ret;
    }())
};

多谢各位!正是我需要的!多谢各位!正是我需要的!所有答案都假设您只有一个id值(即1)。这就是你想要的吗?是否有id为2或不同id的对象?所有答案都假设您只有一个id值(即1)。这就是你想要的吗?是否有id为2或不同id的对象?