我有一个内部有函数的循环。我的目标是检查循环中的当前数据是否仍然相同,例如我的数组是这样的
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理解
答案 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)
你可以迭代数据数组并与除当前位置之外的所有数组元素进行比较。
如果它等于当前且索引与当前不同,则它是重复的
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;
答案 3 :(得分:0)
它对你的任务不太清楚,我希望它检查arr1中存在的值是否可用不在arr2中。如果是的话,
遍历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;
}
})();