Javascript 将变量装入循环中
我试图在循环中比较一些重复的值,因为我需要做一些逻辑。我的问题是我不能得到我期望的结果Javascript 将变量装入循环中,javascript,Javascript,我试图在循环中比较一些重复的值,因为我需要做一些逻辑。我的问题是我不能得到我期望的结果 var tempVal; for (i = 0; i < obj.length; i++) { var items = obj[i]; tempVal = items.fund; console.log(tempVal); console.log(tempVal == tempVal); if(tempVal == tempVal){ //do
var tempVal;
for (i = 0; i < obj.length; i++) {
var items = obj[i];
tempVal = items.fund;
console.log(tempVal);
console.log(tempVal == tempVal);
if(tempVal == tempVal){
//do something
}
var-tempVal;
对于(i=0;i
在我的示例中,
tempVal
variable.myconsole.log(tempVal==tempVal)中有两个相同的值
在第一个循环中返回true
,但我认为它会在第一个循环中返回null
或未定义
,因为在第一个循环中它是空的,所以没有什么可比较的。我需要的是在第一个循环中返回false
然后返回true
。谢谢您正在比较相同的变量e、 显然,它们是相等的,创建另一个变量并进行比较
tempVal = items.fund;
console.log(tempVal);
console.log(tempVal == tempVal); //both are same
您正在比较同一个变量,显然它们相等,请创建另一个变量并进行比较
tempVal = items.fund;
console.log(tempVal);
console.log(tempVal == tempVal); //both are same
您尚未定义初始值。因此,obuse变量与它们自身的比较总是相等的。为什么不使用其他名称来删除复杂性呢
var tempVal;
for (i = 0; i < obj.length; i++) {
var items = obj[i];
temp = items.fund;
console.log(temp);
console.log(temp == tempVal);
if(temp == tempVal){
//do something
}
var-tempVal;
对于(i=0;i
您尚未定义初始值。因此,obuse变量与它们自身的比较总是相等的。为什么不使用其他名称来删除复杂性呢
var tempVal;
for (i = 0; i < obj.length; i++) {
var items = obj[i];
temp = items.fund;
console.log(temp);
console.log(temp == tempVal);
if(temp == tempVal){
//do something
}
var-tempVal;
对于(i=0;i
看看你的代码,我想这就是你想要实现的目标:
var src = [
{
"index": 0,
"fund": 100
},
{
"index": 1,
"fund": 200
},
{
"index": 2,
"fund": 100
}];
var tempFunds = [];
const uniqueFunds = src.filter(item => {
if (tempFunds.indexOf(item.fund) === -1) {
tempFunds.push(item.fund);
return item;
}
});
// logs the array with unique funds
console.log(uniqueFunds);
如果你想处理重复的基金,你可以在上面实现一个<代码>另一个/代码>分支。虽然你没有选择使用一个for循环,但是你也可以根据你的问题考虑<代码>图或<代码>过滤器> /代码>函数。< / P> < P>查看你的代码,我认为这就是你想要达到的:
var src = [
{
"index": 0,
"fund": 100
},
{
"index": 1,
"fund": 200
},
{
"index": 2,
"fund": 100
}];
var tempFunds = [];
const uniqueFunds = src.filter(item => {
if (tempFunds.indexOf(item.fund) === -1) {
tempFunds.push(item.fund);
return item;
}
});
// logs the array with unique funds
console.log(uniqueFunds);
如果你想处理重复的基金,你可以在上面实现一个<代码>别号>代码。虽然你没有选择使用for循环,但是你也可以考虑<代码> MAP>代码>或<代码>过滤器<代码>函数(s)。根据您的问题。
它将返回true,因为它们是一个相同的变量。请将它命名为另一个var,然后对tempVal==tempVal
的所有可能值进行比较,除了NaN
。我不明白您为什么要将它与自身进行比较,或者您为什么会认为它是true
如果您分配tempVal=items.fund
,则“无需比较”。变量不能为“空”",虽然它的值可以是未定义的
,但是如果你的tempVal
是未定义的
,那么tempVal==tempVal
将是真的
。也许你可以解释一下你在这里试图实现的目标。如果我没有正确解释,我很抱歉。在这里。我怎么知道items.fund是否每个l都有相同的值oop?例如,第一个循环items.fund等于“TEST”,第二个循环等于“TEST2”,第三个循环等于“TEST”再说一遍。我该如何过滤呢?你是说你想要一个简单的true
或false
结果来判断每个项目。fund
值是否与其他项目相同?或者如果当前项目。fund
与前一个项目不同,那么你想对当前项目做些什么ant检查items.fund value是否与其他项目相同。它将返回true,因为它们是一个且相同的。将其命名为另一个var,然后比较tempVal==tempVal
对于tempVal
的每个可能值,除了NaN
。我不明白为什么要将其与自身进行比较,或者为什么要将其与自身进行比较如果您分配tempVal=items.fund
,您会认为“没有什么可比较的”。变量不能为“空”,虽然它的值可以是未定义的
,但是如果你的tempVal
是未定义的
,那么tempVal==tempVal
将是真的
。也许你可以解释一下你在这里试图实现的目标。如果我没有正确解释,我很抱歉。在这里。我怎么知道items.fund是否每个l都有相同的值oop?例如,第一个循环items.fund等于“TEST”,第二个循环等于“TEST2”,第三个循环等于“TEST”再说一遍。我该如何过滤呢?你是说你想要一个简单的true
或false
结果来判断每个项目。fund
值是否与其他项目相同?或者如果当前项目。fund
与前一个项目不同,那么你想对当前项目做些什么ant检查items.fund值是否与其他循环相同。如何知道items.fund是否在每个循环中都具有相同的值?例如,在第一个循环items.fund上等于“TEST”,第二个循环为“TEST2”,第三个循环为“TEST”再说一遍。我如何过滤它?你需要使用for循环that@chiradee您需要对变量tempval使用fol循环并进行比较如何知道items.fund是否对每个循环具有相同的值?例如,在第一个循环items.fund等于“TEST”,第二个循环为“TEST2”,第三个循环为“TEST”再说一遍。我如何过滤它?你需要使用for循环that@chiradee您需要对变量tempval使用fol循环,并进行比较