从动态变量中获取价值

时间:2017-05-25 14:38:23

标签: javascript

我有Func<Product, bool> ItemProductAny(IEnumerable<Iitem> items) => (pro) => items.Any(item => pro.ItemID == item.Id); var f3 = ItemProductAny(itemColl1); var f4 = ItemProductAny(itemColl2); bool thisWillAlsoBeTrue = f3(product); bool thisWillAlsoBeTrueAgain = f4(product); var itemColl3 = new Iitem[] { new Iitem { Id = 2 }, new Iitem { Id = 3 } }; var f5 = ItemProductAny(itemColl3); bool butThisWillBeFalse = f5(product); app.figures.data[0].user.x0等变量。这些变量被赋值。

这些变量的动态数量遵循增加变量中最终数字的顺序(即:app.figures.data[0].user.y1之后的下一个变量是app.figures.data[0].user.d2)。

我正在尝试确定一种在循环中动态获取每个变量值的有效方法。

app.figures.data[0].user.d2

我需要app.figures.data[0].user.x3的值 for(j = 0; j < len; j++){ var x = 'x' + j; j++; var y = 'y' + j; j++; var d = 'd' + j; var dresult = app.figures.data[0].user.d; } 。例如,dresultapp.figures.data[0].user.d2,因此app.figures.data[0].user.d2在该次迭代中应为23

我是JS的新手,所以任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

[]运营商会为您服务吗?

for (let j = 2; j < len; j += 3) {
  let dresult = app.figures.data[0].user['d' + j];
}

答案 1 :(得分:0)

var values=["x0","y1","d2"]. map(el=>this[el],app.figures.data[0].user);

它会将键映射到相应的值。 你可以把它放在循环中:

for(var i=0; i<100;i+=3){
      var values=["x","y","d"]. map((el,id)=>this[el+(i+id)],app.figures.data[0].user);

     values.forEach(console.log);//just an example case
}

一些解释:i是计数器,增加3,停止在102. el是一个数组元素,所以&#34; y&#34;,id是该数组中的索引。这是用户对象。所以这个[el +(i + id)]得到了这个对象属性的值。

顺便说一下动态变量名称是非常糟糕的样式,会导致很多错误。可以在没有它的情况下将代码更改为工作。