Javascript 仅打印负数及其和(应用于循环和数组)
我需要一个程序的帮助,我必须使用一个循环来输出所有负整数及其和。我应该用最基本的方法Javascript 仅打印负数及其和(应用于循环和数组),javascript,arrays,for-loop,if-statement,negative-integer,Javascript,Arrays,For Loop,If Statement,Negative Integer,我需要一个程序的帮助,我必须使用一个循环来输出所有负整数及其和。我应该用最基本的方法 负整数:-2,-1,-7问题是您正在检查仅位置的Array.length-1,而它应该是Array.length-2。以下是有效的代码示例: function negativeArray(array) { document.write("Negative integers: ") for (var i = 0, count = 0; i < array.length
负整数:-2,-1,-7问题是您正在检查仅位置的Array.length-1,而它应该是Array.length-2。以下是有效的代码示例:
function negativeArray(array)
{
document.write("Negative integers: ")
for (var i = 0, count = 0; i < array.length; i++)
{
if (array[i] != undefined && array[i] < 0){
document.write(array[i]);
count += array[i];
if (i != array.length-2) {
document.write(", ");
}
}
}
document.write( "<br>Sum negative nums: " + count)
}
var items = [1, -2, 3, 4 -5, 6, -7, 8];
negativeArray(items);
函数negativeArray(数组)
{
document.write(“负整数:”)
for(变量i=0,计数=0;i求和负数:”+count)
}
var项目=[1,-2,3,4-5,6,-7,8];
负片(项目);
以上代码非常适合我,如果您有任何问题,请随时问我 你可以写得容易得多。首先过滤所有负数,然后求和
var items = [1, -2, 3, 4 -5, 6, -7, 8];
function negativeArray(array) {
return array.filter(item => item < 0).reduce((sum, current) => sum + current, 0)
}
console.log(negativeArray(items)); // -10
var项目=[1,-2,3,4-5,6,-7,8];
函数负数组(数组){
返回数组.过滤器(项=>项<0).减少((和,当前)=>和+当前,0)
}
console.log(negativeArray(items));//-10
每次循环并找到下一个负数时,您的逻辑都是:
didOutput
的布尔标志最初设置为false
表示是否输出过任何负数,那么更有意义的是什么。这是在循环之外设置的。然后,在伪代码中循环如下所示:
didOutput = false;
loop {
get next negative number;
if didOutput then {
write(", ");
}
write number;
didOutput = true;
}
这样,在每次循环迭代中,当且仅当您至少写出过一个数字时,您就在写出下一个数字之前写出逗号。您只需要对现有代码进行一两行更改,我本来可以这样做的,但这种模式会反复出现,理解起来很重要,所以您应该尝试自己将其合并到代码中。嘿,我可以帮您吗:)
只需获取一个类似“first”的bool,它检查是否是第一项,并在您的编号前放置“first”。您将其设置为true,然后构建stf,如:
If(first == true){
//don t print the „ ,“
first = false
}else {
// print it
}
使用
过滤器
、连接
和减少
的更简单方法:
var项目=[1,-2,3,4-5,6,-7,8];
document.write(
“负整数:”,
items.filter(item=>item<0).join(“,”)
);
document.write(
“
求负整数之和:”,
减少((acc,电流)=>acc+(电流<0?电流:0),0)
);
您的代码是用语法和1995年的方法编写的。document.write()
不应该像您使用它那样用于生成结果,可以使用多种方法迭代数组,而不是for
循环
在您的情况下,最好的方法是使用该方法在原始数组上循环,这将导致第二个值数组与您建立的某些条件相匹配(在本例中为负数)。由于结果将在一个数组中,因此该方法将生成一个逗号分隔的字符串结果,您不必担心逗号的位置。然后,您可以使用
var项目=[1,-2,3,4-5,6,-7,8];
函数负数组(数组){
//使用Array.filter()方法进行循环
//在一个数组上创建一个新的数组
//你想要的价值观
让结果=array.filter(函数(项){
返回项<0;
});
//.join()将返回以逗号分隔的数组值字符串
document.getElementById(“否定”).textContent=results.join(“,”);
//.reduce()将在数组上循环,并根据传递的函数返回单个值
document.getElementById(“sum”).textContent=results.reduce(函数(x,y){return x+y});
}
负片播放(项目);
负整数:
负数之和:
是的,但数组可以更改,如果最后一个是负数,则不起作用。我必须使用一个通过逗号和空格分隔每个数字的循环,该筛选器将everting放在一起。我必须使用一个通过逗号和空格分隔每个数字的循环,该筛选器将everting放在一起。此ald方法是requeriment@Chucho.join()
方法允许您使用所需的任何分隔符,因此我已更新为,以表示逗号和空格。