检查参数是否仍然相同的函数

时间:2017-12-04 11:25:58

标签: javascript

我有一个内部有函数的循环。我的目标是检查循环中的当前数据是否仍然相同,例如我的数组是这样的

var data = ['test1','test1','test1','test2'];

现在我将检查它们,如果循环内该数组上的数据当前是相同的。比如这样。

for (var i = 0; i < data.length; i++) {
    var value = data[i][0];
    console.log(checkifcurrent(value));
}

我的问题是如果它仍然像这样

,则返回checkifcurrent(value)
function checkifcurrent(value) {
    if (currentvalue is still the same as the last one) {
        console.log(same);
    } else {
        console.log(not same);
    }
}

我希望你理解tysm理解

5 个答案:

答案 0 :(得分:0)

或者,您可以使用lodash difference函数来比较旧数组和新数组。

http://devdocs.io/lodash~4/index#difference

例如:

const _ = require('lodash')
// Save the old array somewhere
let oldArray = ['test1','test1','test1','test2']
let newArray = ['test1','test1','test1','test3']

const areParametersTheSame = !!(_.difference(oldArray, newArray))

答案 1 :(得分:0)

你可以这样做,不需要函数调用。

var data = ['test1','test1','test1','test2'];
lastValue = data[0];
for (var i = 1; i < data.length; i++) {
    var currentValue = data[i];
    if(lastValue==currentValue){
      console.log("Value is same")
    }
    else
    {
      console.log("Value is not same")
    }
    lastValue = currentValue;
}

答案 2 :(得分:0)

你可以迭代数据数组并与除当前位置之外的所有数组元素进行比较。

如果它等于当前且索引与当前不同,则它是重复的

&#13;
&#13;
var data = ['test1','test1','test1','test2'];

for (var i = 0; i < data.length; i++) {
    var value = data[i];
    for(var j = 0; j < data.length; j++){
       //skip the index at position i, because it is the one we are currently comparing
    	if(i !== j && data[j] === value) {
 console.log('another value like: ' + value + ' at position: ' + i + ' has been found at index: ' + j)
      }
    }
}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

它对你的任务不太清楚,我希望它检查arr1中存在的值是否可用不在arr2中。如果是的话,

  1. 遍历arr1中的所有元素并检查其索引

    arr1 = [1,2,3,4]; arr2 = [2,3,4,5,6,6]; arr1.forEach((x)=&gt; {if(arr2.indexOf(x)== - 1){console.log('无法找到元素'+ x)}}) 无法找到element1

答案 4 :(得分:0)

var isSame = (function () { 
  var previous;
  return function(value){
    var result = value === previous;
    previous = value;
    return result;
  }
})();