Javascript基于数组

时间:2017-06-21 06:43:22

标签: javascript arrays object

我在下面定义了一个对象。

var obj = { 'group': ['a', 'b'],
            'value': 10
          }

请注意,组数组可以有n个值。这只是一个例子。 我想创建名称在数组中的动态变量,并将它们的总和分配给值,即10.对于这个特定的对象,我想得到以下结果。

First create Variables
var a, b
Then assign a + b = 10

类似于数组中的n个值,我想要

var a,b, ...n
a+b+....+n = 10

3 个答案:

答案 0 :(得分:1)

如果我理解你的话,我认为你的对象需要一个功能

var obj = {
    group: [1, 2, 3],
    value: function(){
        return this.group.reduce((a, b) => a + b, 0);
    }
}

obj.value();//6

你可以通过调用函数obj.value()来编辑obj.group数组并获取这个数组的新值

但如果你的意思(再次不确定,因为很难理解)从名为" a"," b"的变量中产生这个值。等等你可以试试这段代码

var a = 1;
var b = 2;

var obj = {
    group: ["a", "b"],
    value: function(){
        return this.group.reduce((v_prev, v_current) => v_prev + eval(v_current), 0);
    }
}

obj.value();//3

使用eval不是最好的主意,但它有效。这段代码将找到变量的总和" a"和" b"

答案 1 :(得分:0)

看看这段代码我认为这会对你有所帮助:

    var obj = {
    'group': [5, 5],
    'value':function(str){
       return this[str].reduce(add)
    }
};

function add(a,b){
  return a+b
}

console.log(obj.value('group'))

答案 2 :(得分:0)

您可以改为使用对象:



var obj = {
  'group': ['a', 'b'],
  'value': 10
}

var groupNames = obj.group,
  groupCount = groupNames.length,
  val = obj.value / groupCount, //divide the obj.value to total group count
  resultObj = {};

for (var i in groupNames) {
  resultObj[groupNames[i]] = val; //add properties to resultObj based on group name and assign its value
}

//you can use the object properties to access your "dynamically created variables"
for (var i in resultObj) {
  console.log('Your variable name is "' + i + '" and the value is ' + resultObj[i])
}




注意: 我不确定a + b + ... n = obj.val上的逻辑,所以我使用了平均值。

那是 - obj.val / obj.groups.length