gpt4 book ai didi

javascript - javascript 嵌套 if(){if(){}} 函数中位置对 "return true/false"的影响

转载 作者:行者123 更新时间:2023-11-28 17:02:01 27 4
gpt4 key购买 nike

也许是一个愚蠢的问题,是否有一种技巧可以在嵌套的 if(){if(){if(){}}} 语句中正确且轻松地放置多个 return true/false ?

举个例子:

一个数组:集合=[{ "a": 1, "b": 2 }, { "a": 1 }, { "a": 1, "b": 2, "c": 2 },{"a": 1,"b":1,"c":2}];

一个对象:来源= {“a”:1,“c”:2};

问题:使用Array.filter(conditionFunc)中的元素匹配到集合:显示集合数组中具有相同属性和相同值的元素。我下面有一些代码,但我的问题是:

1 为什么我应该在这里返回true?

2 如果有 if(){if(){}},我应该在哪里正确返回 true

答案应返回 [{ "a": 1, "b": 2, "c": 2 },{"a":1,"b":1,"c":2}]

以下代码错误:为什么在第一个“return false”之后放置“return true”的位置是错误的?

    var key=Object.keys(source);

collection.filter(matchFun);

function matchFun(item) {
for (var i = 0; i < key.length; i++) {
if (!item.hasOwnProperty(key[i]) || !source[[key[i]]] == item[key[i]]) {
return false;
}return true; //this is wrong, but I don't know why?

}

}

这是正确的代码,但如果有更多的 if(){} 嵌套在另一个 if(){} 中,我会在不同情况下第二次“返回 true”时被绊倒。非常感谢任何可以解释的人我的机制

    key=Object.keys(source);

collection.filter(matchFun);

function matchFun(item) {
for (var i = 0; i < key.length; i++) {
if (!item.hasOwnProperty(key[i]) || !source[[key[i]]] == item[key[i]]) {
return false;
}

} return true;

}

最佳答案

return 导致函数返回,这意味着循环停止。第一种情况是错误的,因为直到循环终止且不返回 true 时,您才知道返回 false

关于javascript - javascript 嵌套 if(){if(){}} 函数中位置对 "return true/false"的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57132635/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com