使用上下文访问嵌套Angular foreach循环中的变量

时间:2019-10-29 22:10:56

标签: angularjs

我还是Angular和Javascript的新手,四处寻找解决方案,但是很难找到解决方案,所以请在这里与我联系。我有一个看起来像这样的Angular函数:

var FortunaKey = CryptKey().genFortuna(); //generate 32 byte key with Fortuna //you can also enter your own
var iv = CryptKey().genDart(16); //generate iv for AES with Dart Random.secure() //you can also enter your own
var aesEncrypter = AesCrypt(FortunaKey, 'cbc', 'pkcs7'); //generate AES CBC block encrypter with key and PKCS7 padding
String encrypted = aesEncrypter.encrypt('somedatahere', iv); //encrypt
String decrypted = aesEncrypter.decrypt(encrypted, iv); //decrypt

我想遍历一些键和值,并根据我在内部循环中找到的内容,想在将post: function(url, params) { var someObject = { 'key': ['value1', 'value2'] } for (var paramKey in params) { angular.forEach(someObject, function (values, key) { if (paramKey.indexOf(key) !== -1) { debugger; // params is still defined here angular.forEach(values, function (innerValue) { if (paramKey.indexOf(innerValue) !== -1) { debugger; // params is no longer defined } }, params) } }, params) } 对象发送到API之前对其进行操作。

看着forEach documentation,我可以使用params参数将对象传递给forEach并将其保持在范围内。但是,我使用的是嵌套循环,由于某种原因,我似乎无法继续将context通过params传递到嵌套循环中。第二次变成context

如何在内部循环中访问和操作undefined对象?

1 个答案:

答案 0 :(得分:0)

总是最好避免嵌套循环,所以我想,如果只检查对象的键,然后再检查键是否与数组字符串中的任何一个匹配,为什么甚至还需要启动操作。您可以执行以下相同操作:

chr    pos      gene_id         p.val.LCL   p.val.Retina
chr1  756164    ENSG00000237094 0.1         7.15853e-05
chr1  775930    ENSG00000237094 0.4         9.72251e-05
chr1  814583    ENSG00000237094 0.6         1.88553e-05
chr1  815963    ENSG00000237094 0.7         3.85837e-06
chr6  130235069 ENSG00000164484 5.43098e-06 5.43098e-06
chr17 45848600  ENSG00000236234 9.005e-06   9.005e-06
chr11 34862454  ENSG00000110435 1.81973e-06 1.81973e-06
chr17 45979467  ENSG00000236234 1.34927e-05 1.34927e-05
chr5  81234109  ENSG00000248794 4.36795e-06 4.36795e-06