gpt4 book ai didi

javascript - 如何显示喜欢/不喜欢 MySQL、NodeJS

转载 作者:行者123 更新时间:2023-11-29 18:31:26 26 4
gpt4 key购买 nike

    CREATE TABLE post_likes (
post_id INT NOT NULL,
user_id INT NOT NULL,
likes BOOLEAN NOT NULL,
FOREIGN KEY (post_id) REFERENCES posts(id),
FOREIGN KEY (user_id) REFERENCES users(id),
PRIMARY KEY (user_id, post_id)
)


+-------+---------+---------+
| likes | post_id | user_id |
+-------+---------+---------+
| 1 | 1 | 1 |
| 1 | 1 | 2 |
| 0 | 2 | 1 |
| 0 | 2 | 2 |
+-------+---------+---------+

我使用 NodeJS 和 EJS 作为模板语言。现在我正在将表 post_likes 传递给我的 EJS。并尝试做一个 for 循环。基本上在表中1=真或喜欢,0=假或不喜欢。所以我有一个计数器,如果它是像我一样的 counter++ else counter--。但看起来很糟糕。而且由于某种原因它不起作用什么是更好的方法来做到这一点。

我尝试过的 - 我排除了不需要的代码的其他部分。我删除了 ejs 右括号并打开以使其更具可读性。

<% var counter = 0 %>

for(var i = posts.length-1; i >= 0; i--) {
if(posts[i].post_likes.length > 0) {
for(var j = 0; j < posts[i].post_likes.length; j++) {
if(posts[i].post_likes[j].likes == true) {
counter = counter + 1 %>
}
else if(posts[i].post_likes[j].likes == false) {
counter = counter - 1
}
}
}
}

<h1><%= counter %></h1>

最佳答案

您可以执行类似的操作来获取喜欢和不喜欢的帖子的总数。

var posts = [{
post_likes: [{
likes: true
}]
}, {
post_likes: [{
likes: true
}]
}, {
post_likes: [{
likes: false
}]
}, {
post_likes: [{
likes: true
}]
}];

var likedPosts = 0;
var unlikedPosts = 0;

posts.forEach(function(post) {
likedPosts += post.post_likes.filter(function(v) {
return v.likes === true;
}).length;

unlikedPosts += post.post_likes.filter(function(v) {
return v.likes === false;
}).length;
});

console.log('Liked posts: ' + likedPosts);
console.log('Unliked posts: ' + unlikedPosts);

关于javascript - 如何显示喜欢/不喜欢 MySQL、NodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45656368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com