Javascript 环内有多个if雄蕊
我有这样一个for循环:Javascript 环内有多个if雄蕊,javascript,Javascript,我有这样一个for循环: for(var i = 0; i < data.reviews.length; i++){ if(data.reviews[i].rating.overall > 80){ console.log(i); if(i > 1){ console.log('more than 80 and more than 1'); } else{ console.log('more
for(var i = 0; i < data.reviews.length; i++){
if(data.reviews[i].rating.overall > 80){
console.log(i);
if(i > 1){
console.log('more than 80 and more than 1');
}
else{
console.log('more than 80 and only 1');
}
}
}
我需要满足一些条件才能附加一些HTML:
1) 如果总体评论超过80篇,并且有多篇评论(附加幻灯片)
2) 如果评论总数超过80篇,并且只有一篇评论(添加纯文本,无幻灯片的jus音调评论)
根据提供的评论数据,我应该得到console.log('80多个和1多个')代码>仅打印两次,而在我的控制台中,我得到:
more than 80 and only 1
more than 80 and only 1
more than 80 and more than 1
试试这个~
var count = 0;
for(var i = 0; i < data.reviews.length; i++){
if(data.reviews[i].rating.overall > 80){
count++;
}
}
if(count > 1){
console.log('more than 80 and more than 1');
}
else{
console.log('more than 80 and only 1');
}
//current.find(".reviews-wrapper ul").append("<li data-orbit-slide='headline-" + [i] + "'>" + data.reviews[i].notes + "<p class='bold'>" + data.reviews[i].user.nickname + ", " + data.reviews[i].groupInformation.groupTypeCode + ", " + data.reviews[i].groupInformation.age + "</p></li>");
var计数=0;
对于(var i=0;i80){
计数++;
}
}
如果(计数>1){
console.log(“超过80和超过1”);
}
否则{
console.log('80多个,仅1个');
}
//当前.find(“.reviews wrapper ul”).append(“”+数据。评论[i]。notes+“”+数据。评论[i]。user.昵称+”,“+数据。评论[i]。groupInformation.age+”
”;
您是否试图计算评级超过80
var count = 0
for(var i = 0; i < data.reviews.length; i++){
var rating = data.reviews[i].rating.overall;
switch (rating) {
case (rating > 80):
count++;
break;
}
}
if ( count > 1 ) {
console.log('more than 80 and more than 1');
} else {
console.log('more than 80 and only 1');
}
var计数=0
对于(var i=0;i80):
计数++;
打破
}
}
如果(计数>1){
console.log(“超过80和超过1”);
}否则{
console.log('80多个,仅1个');
}
使用switch/case,如果您想更进一步,您可以在每个括号中附加所需的html如果我正确理解了您的问题,那么您只需更改内部的if
语句来检查有多少评论,而不是重复评论的计数器
var数据={
“审查”:[
{
“评级”:{“总体”:91}
},
{
“评级”:{“总体”:77}
},
{
“评级”:{“总体”:94}
},
{
“评级”:{“总体”:74}
}
]
};
对于(var i=0,l=data.reviews.length;i80){
如果(l>1){//检查总计数,而不是当前索引
写文档('80多个和1多个
');
}
否则{
写文档('80多个,只有1个
');
}
}
}
因此,您提供的代码存在的问题是它与您的问题不匹配。
您要求的是三个案例:
- 如果有一次以上的审查,且总体审查结果超过80
- 如果只有一次审查,且总体审查结果在80%以上
- 其他任何情况(有效地说,总数小于80)
但是,您使用“i”您的迭代器来回答“是否有多个审阅”的问题,在这种情况下,它回答了“当前迭代是否是审阅中此循环的第三次或以后的迭代”(由于数组的索引为零,“i>1”在第三次迭代中将为真)
您的问题不清楚您是只想将超过80条评论计入总评论数,还是仅计算评论总数,因此我将为您提供几个循环选项:
var sizeString=''
if(data.reviews.length > 1) {
sizeString=' and more than 1';
}
for(var i = 0; i< data.reviews.length; i++) {
if(data.reviews[i].rating.overall > 80){
console.log('more than 80'+sizeString);
}
}
var sizeString=''
如果(data.reviews.length>1){
sizeString='和大于1';
}
对于(var i=0;i80){
控制台日志('80'以上+大小限制);
}
}
或者,如果仅当超过1次80分以上的审查时才计算:
var sizeString=''
var numOver80=0;
for(var i = 0; i< data.reviews.length; i++) {
// This will simply find out if there are at least two over 80 ratings
if(data.reviews[i].rating.overall > 80){
numOver80++;
if(numOver80 > 1){
sizeString=' and more than 1';
break; // Unless you want to get the actual total
}
}
}
for(var i = 0; i< data.reviews.length; i++) {
if(data.reviews[i].rating.overall > 80) {
console.log('more than 80'+sizeString);
}
}
var sizeString=''
var numOver80=0;
对于(var i=0;i80){
numOver80++;
如果(numOver80>1){
sizeString='和大于1';
break;//除非您想得到实际总数
}
}
}
对于(var i=0;i80){
控制台日志('80'以上+大小限制);
}
}
希望这些可以为您指明正确的方向。您可以编辑您的问题,使其更清楚地说明您的问题吗?我在控制台中得到的不是我认为脚本应该打印的内容。请记住数组索引是基于0的。此外,控制台正在打印的内容正是您所描述的内容。您的代码毫无意义。为什么您会在意数据的前两个索引中是否出现高评级。评论
?你需要弄清楚你想用词做什么……无论如何,你似乎想知道有多少评论超过80篇。如果是这样,请在数组上使用.filter()
,将其筛选到所需的子集,然后根据发现的数目执行操作。这样地:
var sizeString=''
var numOver80=0;
for(var i = 0; i< data.reviews.length; i++) {
// This will simply find out if there are at least two over 80 ratings
if(data.reviews[i].rating.overall > 80){
numOver80++;
if(numOver80 > 1){
sizeString=' and more than 1';
break; // Unless you want to get the actual total
}
}
}
for(var i = 0; i< data.reviews.length; i++) {
if(data.reviews[i].rating.overall > 80) {
console.log('more than 80'+sizeString);
}
}