Javascript循环来比较不同的数字
我从stackoverflow搜索了这类帖子,但我对JS还不是很熟悉,所以我仍然不知道如何解决我的问题。 我有两个数组(第一个包括“名称”,另一个包括“高度”)。我做了一个循环,在网页上显示了一些关于他们的信息。但是现在我想做一个循环来比较这些值。 我知道一个解决办法是我写if,elseif,else句子,但看起来不是很聪明。。。 Atm我的代码如下所示:Javascript循环来比较不同的数字,javascript,loops,comparison,Javascript,Loops,Comparison,我从stackoverflow搜索了这类帖子,但我对JS还不是很熟悉,所以我仍然不知道如何解决我的问题。 我有两个数组(第一个包括“名称”,另一个包括“高度”)。我做了一个循环,在网页上显示了一些关于他们的信息。但是现在我想做一个循环来比较这些值。 我知道一个解决办法是我写if,elseif,else句子,但看起来不是很聪明。。。 Atm我的代码如下所示: <!doctype html> <html> <head></head> <body&
<!doctype html>
<html>
<head></head>
<body>
<p id="test2">...</p>
<p id="test3">...</p>
<p id="test4">...</p>
<p id="test5">...</p>
<script>
// Arrays. 1st with names. 2nd with heigths in cm.
var names = ["name1", "name2", "name3", "name4"];
var height = [150, 165, 160, 165, 170];
/* Loop to show some info on page.
E.g name1 is 150cm
name2 is 155cm */
var text = "";
for(var i = 0; i < (names.length); i++) {
text += names[i] + " is " + height[i] + "cm tall <br>";
}
document.getElementById("test2").innerHTML = text;
// Comparison by heights
var a = height[0];
var b = height[1];
var c = height[2];
var d = height[3];
if(a < b) {
document.getElementById("test3").innerHTML = names[0] + " is shorter than " + names[1];
}
else if (a > b){
document.getElementById("test3").innerHTML = names[0] + " is taller than " + names[1];
}
else {
document.getElementById("test3").innerHTML = names[0] + " is equal to " + names[1] + " height";
}
if(b < c) {
document.getElementById("test4").innerHTML = names[1] + " is shorter than " + names[2];
}
else if (b > c){
document.getElementById("test4").innerHTML = names[1] + " is taller than " + names[2];
}
else {
document.getElementById("test4").innerHTML = names[1] + " is equal to " + names[2] + " height";
}
</script>
</body>
</html>
<!doctype html>
<html>
<head></head>
<body>
<p id="test1">...</p>
<p id="test2">...</p>
<p id="test3">...</p>
<p id="test4">...</p>
<p id="test5">...</p>
<script>
// Arrays. 1st with names. 2nd with heigths in cm.
var names = ["name1", "name2", "name3", "name4"];
var height = [150, 165, 160, 165, 170];
var obj = [
{id: 1, name: "name1", compareId: 2, height: 150, resultId: 3},
{id: 2, name: "name2", compareId: 3, height: 165, resultId: 4},
{id: 3, name: "name3", compareId: 4, height: 160, resultId: 5},
{id: 4, name: "name4", compareId: 1, height: 165, resultId: 1}
]
var text = "";
for(var i = 0; i < (obj.length); i++) {
text += obj[i].name + " is " + obj[i].height + "cm tall <br>";
}
document.getElementById("test2").innerHTML = text;
for(var i = 0; i < (obj.length); i++) {
var item = getById(obj[i].compareId);
if(obj[i].height < item.height)
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is shorter than " + item.name;
else if(obj[i].height > item.height)
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is taller than " + item.name;
else
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is equal than " + item.name;
}
function getById (id) {
for(var i = 0; i < (obj.length); i++) {
if (obj[i].id === id)
return obj[i];
}
}
</script>
</body>
</html>
//数组。第一个是名字。第二个,高度单位为厘米。
变量名称=[“名称1”、“名称2”、“名称3”、“名称4”];
变量高度=[1501651616165170];
/*循环以在页面上显示一些信息。
例如,名称1为150厘米
名称2为155厘米*/
var text=“”;
对于(变量i=0;i<(names.length);i++){
text+=名称[i]+“是”+高度[i]+“厘米高
”;
}
document.getElementById(“test2”).innerHTML=text;
//身高比较
var a=高度[0];
var b=高度[1];
var c=高度[2];
var d=高度[3];
if(ab){
document.getElementById(“test3”).innerHTML=names[0]+“比”+names[1]高;
}
否则{
document.getElementById(“test3”).innerHTML=names[0]+“等于”+names[1]+“height”;
}
if(bc){
document.getElementById(“test4”).innerHTML=names[1]+“比”+names[2]高;
}
否则{
document.getElementById(“test4”).innerHTML=names[1]+“等于”+names[2]+“height”;
}
我曾经尝试过一些我想到的解决方案,但是因为“javascript知识不是很好”,我仍然不知道如何去做。。。
如果有人能帮助我,我将不胜感激。您可以将每个元素与高度的每个元素进行比较,并打印结果
函数追加(字符串){
var node=document.getElementById('result');
appendChild(document.createTextNode(字符串));
node.appendChild(document.createElement('br'));
}
变量名称=[“名称1”、“名称2”、“名称3”、“名称4”];
变量高度=[150、165、160、165、/*170无名称*/];
var text=“”,
i、 j;
对于(变量i=0;i<(names.length);i++){
text+=名称[i]+“是”+高度[i]+“厘米高
”;
}
document.getElementById(“test2”).innerHTML=text;
对于(i=0;i高度[j]){
追加(名称[i]+”高于“+名称[j]);
}否则{
追加(名称[i]+”等于“+名称[j]);
}
}
}
一个简单的解决方案是创建一个比较两个高度的函数,然后输出一个可以分配给DOM元素的字符串。您可能还希望将信息存储在对象中,这样就不会有多个数组:
功能比较人(person1,person2){
if(人1.身高<人2.身高){
return person1.name+“短于”+person2.name;
}否则如果(person1.height>person2.height){
return person1.name+“高于”+person2.name;
}否则{
return person1.name+“等于”+person2.name+“高度”;
}
}
var people=[
{name:'name1',高度:150},
{name:'name2',高度:165},
{name:'name3',高度:160},
{name:'name4',高度:165}
];
var text=“”;
人员。forEach(功能(人员){
text+=person.name+'是'+person.height+'厘米高
';
});
document.getElementById(“test1”).innerHTML=text;
document.getElementById(“test2”).innerHTML=comparePeople(people[0],people[1]);
document.getElementById(“test3”).innerHTML=comparePeople(people[1],people[2])代码>
…
您可以使用如下对象数组:
<!doctype html>
<html>
<head></head>
<body>
<p id="test2">...</p>
<p id="test3">...</p>
<p id="test4">...</p>
<p id="test5">...</p>
<script>
// Arrays. 1st with names. 2nd with heigths in cm.
var names = ["name1", "name2", "name3", "name4"];
var height = [150, 165, 160, 165, 170];
/* Loop to show some info on page.
E.g name1 is 150cm
name2 is 155cm */
var text = "";
for(var i = 0; i < (names.length); i++) {
text += names[i] + " is " + height[i] + "cm tall <br>";
}
document.getElementById("test2").innerHTML = text;
// Comparison by heights
var a = height[0];
var b = height[1];
var c = height[2];
var d = height[3];
if(a < b) {
document.getElementById("test3").innerHTML = names[0] + " is shorter than " + names[1];
}
else if (a > b){
document.getElementById("test3").innerHTML = names[0] + " is taller than " + names[1];
}
else {
document.getElementById("test3").innerHTML = names[0] + " is equal to " + names[1] + " height";
}
if(b < c) {
document.getElementById("test4").innerHTML = names[1] + " is shorter than " + names[2];
}
else if (b > c){
document.getElementById("test4").innerHTML = names[1] + " is taller than " + names[2];
}
else {
document.getElementById("test4").innerHTML = names[1] + " is equal to " + names[2] + " height";
}
</script>
</body>
</html>
<!doctype html>
<html>
<head></head>
<body>
<p id="test1">...</p>
<p id="test2">...</p>
<p id="test3">...</p>
<p id="test4">...</p>
<p id="test5">...</p>
<script>
// Arrays. 1st with names. 2nd with heigths in cm.
var names = ["name1", "name2", "name3", "name4"];
var height = [150, 165, 160, 165, 170];
var obj = [
{id: 1, name: "name1", compareId: 2, height: 150, resultId: 3},
{id: 2, name: "name2", compareId: 3, height: 165, resultId: 4},
{id: 3, name: "name3", compareId: 4, height: 160, resultId: 5},
{id: 4, name: "name4", compareId: 1, height: 165, resultId: 1}
]
var text = "";
for(var i = 0; i < (obj.length); i++) {
text += obj[i].name + " is " + obj[i].height + "cm tall <br>";
}
document.getElementById("test2").innerHTML = text;
for(var i = 0; i < (obj.length); i++) {
var item = getById(obj[i].compareId);
if(obj[i].height < item.height)
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is shorter than " + item.name;
else if(obj[i].height > item.height)
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is taller than " + item.name;
else
document.getElementById("test" + obj[i].resultId).innerHTML = obj[i].name + " is equal than " + item.name;
}
function getById (id) {
for(var i = 0; i < (obj.length); i++) {
if (obj[i].id === id)
return obj[i];
}
}
</script>
</body>
</html>
//数组。第一个是名字。第二个,高度单位为厘米。
变量名称=[“名称1”、“名称2”、“名称3”、“名称4”];
变量高度=[1501651616165170];
var obj=[
{id:1,name:“name1”,compareId:2,height:150,resultId:3},
{id:2,name:“name2”,compareId:3,height:165,resultId:4},
{id:3,name:“name3”,compareId:4,height:160,resultId:5},
{id:4,name:“name4”,compareId:1,height:165,resultId:1}
]
var text=“”;
对于(变量i=0;i<(对象长度);i++){
text+=obj[i]。name+“是”+obj[i]。高度+“厘米高
”;
}
document.getElementById(“test2”).innerHTML=text;
对于(变量i=0;i<(对象长度);i++){
var item=getById(obj[i].compareId);
if(obj[i].高度<项目高度)
document.getElementById(“test”+obj[i].resultId).innerHTML=obj[i].name+”比“+item.name”短;
else if(obj[i].height>item.height)
document.getElementById(“test”+obj[i].resultId).innerHTML=obj[i].name+”比“+item.name”高;
其他的
document.getElementById(“test”+obj[i].resultId).innerHTML=obj[i].name+”等于“+item.name;
}
函数getById(id){
对于(变量i=0;i<(对象长度);i++){
if(obj[i].id==id)
返回obj[i];
}
}
我不知道为什么,但我完全忘记了对象。谢谢,现在一切都好了!哦,还要感谢forEach,它看起来很结实!:)