假设你有一个数组中的(任意数量)值,并且你想看看它们中的任何一个是否结束(数量较少)并且数量较多,你会怎么做?
回答没有做for循环或任何冗长的代码。
可能是这样的:
gsub("^([^.]+)\\.([^.]+)\\.([^_]+_.*)", "\\1-\\2-\\3", myvec)
#[1] "SKDP-209-3_C4UAMACXX.7.04.ReCal.sort.bam"
#[2] "SKDP-97-1_C4UAMACXX.7.12.ReCal.sort.bam"
#[3] "SKDP972_C4UAMACXX.7.13.ReCal.sort.bam"
会起作用。
请注意:CREATE OR REPLACE TRIGGER generatePassword
BEFORE INSERT ON people
FOR EACH ROW
BEGIN
:NEW.password := round(dbms_random.value(0000,9999);
END generatePassword;
/
和var havingParty = false;
if ((theArrayWithValuesIn > 10) && (theArrayWithValuesIn < 100)) {
havingParty = true;
} else {
havingParty = false;
}
,碰撞检测,紧凑代码。
答案 0 :(得分:2)
如果我理解你的问题,你想检查给定数组是否有任何大于某个其他值的值。
这个名为some
(Documentation here)
使用它的一个例子是:
const a = [1, 2, 3, 4, 5];
a.some(el => el > 5) // false, since no element is greater than 5
a.some(el => el > 4) // true, since 5 is greater than 4
a.some(el => el > 3) // true, since 4 and 5 are greater than 3
与此类似的函数是every
,它检查所有值是否满足给定条件(Documentation here)。
这方面的一个例子是:
const a = [1, 2, 3, 4, 5];
a.every(el => el > 3) // false
a.every(el => el > 0) // true
我的示例只是检查大于,但你可以传入任何回调一个布尔值的回调来进行更复杂的检查。
因此,对于您的示例,如果您想要检查所有元素是否满足要求,这样的事情可能会起作用:
const havingParty = theArrayWithValuesIn.every(el => el < 100 && el > 10);
或
const havingParty = theArrayWithValuesIn.some(el => el < 100 && el > 10);
如果您只关心至少有一个元素满足要求。
答案 1 :(得分:0)
这是一个简单的答案:
var arr = [0,10,100,30,99];
var config = {min:0,max:100};
// filter is a method that returns only array items that respect a
//condition(COND1 in this case )
var arr2 = arr.filter(function(item){
//COND 1 :
return item > config.min && item < config.max;
});
答案 2 :(得分:0)
根据你的情况
“如果其中任何一个超过(较低金额)且金额较高”
Array.some
功能将是最合适的“工具”:
var min = 10, max = 100,
result1 = [1, 2, 3, 30].some((v) => min < v && v < max),
result2 = [1, 2, 3, 10].some((v) => min < v && v < max);
console.log(result1); // true
console.log(result2); // false