[英]Dynamic property names for loop of object Javascript
在Javascript中是否有一种巧妙的方法来遍历数组中对象的属性名称?
我有几个属性的对象,包括guest1到guest100。 除了下面的循环之外,我还想要另一个循环遍历guestx属性而不必长时间写出来的循环。 如果我必须将下面的代码编写成结果[i] .guest100,这将是一个非常长的列表,这将是一些丑陋的代码。
for (var i = 0; i < results.length; i++) {
if (results[i].guest1 != "") {
Do something;
}
if (results[i].guest2 != "") {
Do something;
}
if (results[i].guest3 != "") {
Do something;
}
etcetera...
}
尝试这个:
for (var i = 0; i < results.length; i++) {
for (var j=0; j <= 100; j++){
if (results[i]["guest" + j] != "") {
Do something;
}
}
}
通过在[]
对象属性语法中构造字符串名来访问属性:
// inside your results[i] loop....
for (var x=1; x<=100; x++) {
// verify with .hasOwnProperty() that the guestn property exists
if (results[i].hasOwnProperty("guest" + x) {
// JS object properties can be accessed as arbitrary strings with []
// Do something with results[i]["guest" + x]
console.log(results[i]["guest" + x]);
}
}
我想你会发现“in”运算符很有用:
if (("guest" + i) in results[i]) { /*code*/ }
干杯
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.