使用更新数组值的for循环简化javascript

时间:2016-12-29 02:28:39

标签: javascript for-loop

var thisdata = $.jStorage.get(something);
var nameChi = "nameChi" + i;
var name = "name" + i;
var brought = "brought" + i;
var amount = "amount" + i;
var np = "np" + i;
var num = "num" + i;

上面是我想要简化的工作代码。我尝试使用以下代码将个别作业转换为for循环:

thisdata = $.jStorage.get(something);
var generateid = ['thisdata', 'nameChi', 'name', 'brought', 'amount', 'np', 'num']

for (var a in generateid){
    var generateid[a] = generateid[a] + i
}

但是,这不起作用。任何人都可以帮我解决这个问题吗?非常感谢!!

4 个答案:

答案 0 :(得分:2)

试试这个

var generateid = ['thisdata', 'nameChi', 'name', 'brought', 'amount', 'np', 'num']
generateid = generateid.map(each => each + i);

这是如何运作的?

  • map使用函数
  • 创建一个新数组
  • each => each + i是一个匿名函数,可为每个元素添加i

答案 1 :(得分:0)

您可以使用解构分配Array.prototype.map()

var generated = ["nameChi", "name", "brought", "amount", "np", "num"]
                .map((n /*,i*/) => n + i);
var [nameChi, name, brought, amount, np, num] = generated;

答案 2 :(得分:0)

在您的代码中,索引是分配的问题,请使用以下代码进行使用,

var val;
var generateid = ['thisdata', 'nameChi', 'name', 'brought', 'amount', 'np', 'num'];
var index=0;
for (val of generateid ) {
    generateid [index]=val + "i"
}

如何运作,

  1. 在每个for循环中索​​引都会递增,因此您可以使用该索引值找到插入索引。

答案 3 :(得分:0)

试试这个它会起作用。

 var ids = ["thisdata", "nameChi", "name", "brought", "amount", "np", "num"];
 var generateid = {};
 for(var i = 0; i < ids.length; i++){ 
      generateid[ids[i]] = ids[i] + i; 
 }