Discuss / JavaScript / 我就搞不懂了,同样的逻辑用python和js结果咋就不一样呢?

我就搞不懂了,同样的逻辑用python和js结果咋就不一样呢?

Topic source

alienation

#1 Created at ... [Delete] [Delete and Lock User]

为什么js的2没了???

js简直就是玄学,同样的代码跑两次i的值都不一样的我去

function get_primes(arr) {
var f = function(element){
    var brr = []
    for (let i=1;i<element;i++){
       brr.push(i) }
    for (let i in brr){
        console.log(element,i,element % i)
        if (i === 1){
            continue}
        else if((element % i === 0) && (element === i )){return False}
        else{return true}}}
return arr.filter(f)
}
def get_primer(arr):
    def f(s):
            L = list(range(1,s+1))
            for i in L:
                print(s)
                if i == 1:
                    continue
                elif (s % i ==0) and (s != i):
                    return False
                else:
                    return True
    return list(filter(f,arr))
arr =list(range(1,101))
get_primer(arr)

alienation

#2 Created at ... [Delete] [Delete and Lock User]
function get_primes(arr) {
var f = function(element){
    if (element ===0||element ===1){
        return false}
    for (let i=2;i<element;i++){
        if(element%i ===0){return false}
        else{return true}
    }
return arr.filter(f)}
}

还有这样子写出来的函数,为什么最后输出的r是undefined???

alienation

#3 Created at ... [Delete] [Delete and Lock User]

知道了是因为语句块范围不对,最后的filter放在f函数里了,可是为什么最后输出的结果还是少个2啊


  • 1

Reply