Javascript 如何根据特定标准输出元素的数量?

Javascript 如何根据特定标准输出元素的数量?,javascript,Javascript,我想数一数具体的车的数量并输出这些车, 我可以数一数萨博的数量,但当我尝试淘汰2辆萨博汽车时,我得到的是“sa” 更新 <!DOCTYPE html> <html> <body> <script> cars=["BMW","Volvo","Saab","Ford","Saab"]; var count=0; var totalSuccessArray= new Array(); for (var i=0;i<cars.length;i++)

我想数一数具体的车的数量并输出这些车, 我可以数一数萨博的数量,但当我尝试淘汰2辆萨博汽车时,我得到的是“sa”

更新

<!DOCTYPE html>
<html>
<body>

<script>
cars=["BMW","Volvo","Saab","Ford","Saab"];
var count=0;
var totalSuccessArray= new Array();
for (var i=0;i<cars.length;i++)
{
    document.write(cars[i] + "<br>");
    if(cars[i]=="Saab") {   
      totalSuccessArray.push(cars[i]);

        count++;
    }   


}

alert(count);
 document.write(count + "<br>");

for (var a=0;a<count;a++)  {
            document.write("totalssuccess"+totalSuccessArray[a] + "<br>");
}

</body>
</html>

汽车=[“宝马”、“沃尔沃”、“萨博”、“福特”、“萨博”];
var计数=0;
var totalSuccessArray=新数组();

对于(var i=0;i您正在将
totalSuccessArray
更改为字符串,然后对其中的字母进行迭代。字符串上使用的括号返回该位置的字符。我想您要做的是将新车添加到数组中:

cars=["BMW","Volvo","Saab","Ford","Saab"];
var count=0;
var totalSuccessArray= new Array();
for (var i=0;i<cars.length;i++) {
    document.write(cars[i] + "<br>");
    if(cars[i]=="Saab") {
        totalSuccessArray[count] = cars[i];
        count++;
    }
}
cars=[“宝马”、“沃尔沃”、“萨博”、“福特”、“萨博”];
var计数=0;
var totalSuccessArray=新数组();

对于(var i=0;i您正在将
totalSuccessArray
更改为字符串,然后对其中的字母进行迭代。字符串上使用的括号返回该位置的字符。我想您要做的是将新车添加到数组中:

cars=["BMW","Volvo","Saab","Ford","Saab"];
var count=0;
var totalSuccessArray= new Array();
for (var i=0;i<cars.length;i++) {
    document.write(cars[i] + "<br>");
    if(cars[i]=="Saab") {
        totalSuccessArray[count] = cars[i];
        count++;
    }
}
cars=[“宝马”、“沃尔沃”、“萨博”、“福特”、“萨博”];
var计数=0;
var totalSuccessArray=新数组();

对于(var i=0;i尝试将您的
totalSuccessArray
定义移到for循环之外,然后将元素按如下方式推送到for循环上:

cars=["BMW","Volvo","Saab","Ford","Saab"];
var count=0;
var totalSuccessArray= new Array();
for (var i=0;i<cars.length;i++)
{
    document.write(cars[i] + "<br>");
    if(cars[i]=="Saab") {
        totalSuccessArray.push(cars[i]);
        count++;
    }   
}
cars=[“宝马”、“沃尔沃”、“萨博”、“福特”、“萨博”];
var计数=0;
var totalSuccessArray=新数组();

对于(var i=0;i尝试将您的
totalSuccessArray
定义移到for循环之外,然后将元素按如下方式推送到for循环上:

cars=["BMW","Volvo","Saab","Ford","Saab"];
var count=0;
var totalSuccessArray= new Array();
for (var i=0;i<cars.length;i++)
{
    document.write(cars[i] + "<br>");
    if(cars[i]=="Saab") {
        totalSuccessArray.push(cars[i]);
        count++;
    }   
}
cars=[“宝马”、“沃尔沃”、“萨博”、“福特”、“萨博”];
var计数=0;
var totalSuccessArray=新数组();

对于(var i=0;i在第一个for循环中,您将
totalSuccessArray
设置为
“Saab”
(保存在
cars[i]
中的值)

这意味着,当您在第二个for循环中引用
totalSuccessArray[a]
时,它的值是一个字符串。字符串是一个字符数组,因此第二个for循环所做的是输出
“Saab”
的前两个元素,即字符
“S”
“a”

你需要换线

totalSuccessArray = cars[i];

这样您就可以将值“Saab”添加到现有的
totalSuccessArray
数组中

除此之外,还应将
totalSuccessArray
的声明移动到代码顶部,在for循环之外


您还可以对此代码进行许多其他优化,但这超出了特定问题的范围。

在第一个for循环中,您将
totalSuccessArray
设置为
“萨博”
(在
汽车[i]
中保留的值)

这意味着,当您在第二个for循环中引用
totalSuccessArray[a]
时,它的值是一个字符串。字符串是一个字符数组,因此第二个for循环所做的是输出
“Saab”
的前两个元素,即字符
“S”
“a”

你需要换线

totalSuccessArray = cars[i];

这样您就可以将值“Saab”添加到现有的
totalSuccessArray
数组中

除此之外,还应将
totalSuccessArray
的声明移动到代码顶部,在for循环之外


您还可以对此代码进行许多其他优化,但这超出了特定问题的范围。

为什么要在for循环中声明并初始化totalSuccessArray?这将在每次cars[i]==“Saab”时重新初始化阵列这些是w3schools cars lol为什么要在for循环中声明和初始化totalSuccessArray?这将在每次cars[i]=“Saab”这些是w3schools cars lol时重新初始化数组