使用JavaScript中的每个函数比较数组中的值

时间:2015-02-16 19:47:55

标签: javascript

我有一项任务,使用for each函数对数组执行某些特定任务。我有一切工作,除了最后一个 - 我很接近,但返回的第一个和最后一个值是不正确的。

在isNextGreater函数中,我需要获取数组中元素的值,并将其与下一个元素进行比较。如果元素的值是<我需要返回-1的下一个元素的值。如果值更大,我需要返回1.最后一个元素需要返回其原始值,因为没有什么可以比较它。

当函数运行时,它返回[1]和[2]的正确值,但[0]返回其原始值,[3]返回1.

我知道我很亲密但却缺少一些东西!有人能给我一个关于我在看什么的暗示吗?

谢谢!

<!doctype html>
<html>
<head>
<title> Functions: forEach </title>
<meta charset="utf-8">
<script>

// the zeros array
var zeros = [0, 0, 0, 0];

// your code here

//Function to display the contents of the Array.

function showArray (value, index, theArray) {
console.log("Array[" + index + "]" + ":" + value);
}  

//Function to assign random values to the passed array
function makeArrayRandom(value, index, theArray) {
var maxSize = 5;
var randomNum = Math.floor(Math.random() * maxSize);
theArray[index] = randomNum;
console.log("Array[" + index + "]" + ":" + randomNum);    
}

//Function to create a copy of the random numbers array
function map(value, index, theArray) {
var arrayCopy = [];      
arrayCopy[index] = theArray[index];
console.log("Array[" + index + "]" + ":" + value); 
return arrayCopy;
}

//Function to compare the values of the array
function isNextGreater(value, index, theArray) {  
var size = theArray.length  

for (var i = 0; i < size; i++) {            
if (theArray[i] < theArray[i+1]){
   theArray[i] = -1;
} else {
   theArray[i] = 1;
}  
}

console.log("Array[" + index + "]" + ":" + value);            
} 

//Use ForEach to pass Array data to functions.                          
console.log("Display the Array:");
zeros.forEach(showArray);
console.log("Random Array:");
zeros.forEach(makeArrayRandom);
console.log("Copy of Zeros:");
zeros.forEach(map);
console.log("Is Next Greater:");
zeros.forEach(isNextGreater);

</script>
</head>
<body>
</body>

1 个答案:

答案 0 :(得分:0)

将您的isNextGreater功能更改为此功能,您就完成了。

function isNextGreater(value, index, theArray) {  
    var size = theArray.length  

    if (index < size - 1){
        if (value < theArray[index+1] ){
            value = -1;
        } else {
            value = 1;
        }  
    }else{
        value = value;
    }

    console.log("Array[" + index + "]" + ":" + value);            
} 

Here是检查结果的小提琴(结果显示在控制台上)