Jquery数组对象 - 如何将后缀变量添加到索引名称

时间:2014-09-04 10:23:58

标签: javascript jquery arrays

我有这个数组对象启动每个索引:

var example = { 'hours': 0, 'overtime': 0, 'income': 0, 'expenditure': 0 };

但它位于.each()循环内。每个索引都需要一个唯一标识符,例如:hours0 hours1

我用来附加后缀的旧格式很笨重。

example['hours'       + index] = 0;
example['overtime'    + index] = 0;
example['income'      + index] = 0;
example['expenditure' + index] = 0;

我尝试了以下内容。

var example = { 'hours'+index: 0, 'overtime'+index: 0, 'income'+index: 0, 'expenditure'+index: 0 };

但结果是:Uncaught SyntaxError: Unexpected token +

任何想法?

3 个答案:

答案 0 :(得分:2)

以下是另一种可能适合您的方法:

var employee = [];

var numEmpl = 100; // total number of employees

for(var i = 0; i < numEmpl; i++)
  employee[i] = {'hours' : 0, 'overtime' : 0, 'income' : 0, 'expenditure' : 0};

上面的代码为您提供了一系列对象,每个员工一个。每个对象(employee)属性都可以单独访问:

employee[20].overtime = 10;

console.log(employee[20].overtime) // => 10

或者,您可以一次更新给定员工的所有信息,如下所示:

employee[30] = {'hours' : 45, 'overtime' : 5, 'income' : 1000, 'expenditure' : 0}

console.log(employee[30].overtime) // => 5

要添加新员工,只需执行以下操作:

employee.push({'hours' : 0, 'overtime' : 0, 'income' : 0, 'expenditure' : 0})

答案 1 :(得分:1)

添加新密钥并删除旧密钥

 var example = {
       'hours': 0,
       'overtime': 0,
       'income': 0,
       'expenditure': 0
   };
   var index = 0;
   for (var key in example) {
       example[key + index] = example[key];//adding new key with old value
       delete example[key];//delete old key
   }
   console.log(example);


输出 Object {hours0: 0, overtime0: 0, income0: 0, expenditure0: 0}

答案 2 :(得分:0)

杰拉德(Gerald)的答案肯定是最好的方法。

但是请注意,也可以将字符串表达式评估为内联对象字段。操作方法如下:

let a = { ['foo' + 'bar' + 123]: 5 }
// a is now { foobar123: 5 }