alert()和return给我的变量赋予不同的值

时间:2018-10-23 17:20:29

标签: javascript

var buy = function(sum, arr){
  arr.some(function(item, i) {
    var id = arr.indexOf(sum - item, i + 1);
    alert(id);
  });
};

buy(2,[1,1]);

alert(id)将给我1和-1的值;但是,return表示ID未定义。为什么这样做?

1 个答案:

答案 0 :(得分:0)

第一件事arr.some(()=>{})返回true或false,即使您返回整数或字符串也将返回布尔值,并且如果您在arr.some()内使用return语句(根据您的代码),则您的代码无效

var buy = function(sum, arr){
  return arr.some(function(item, i) {
    var id = arr.indexOf(sum - item, i + 1);
    alert(id);
    return id
  });
};

它将起作用。如果id为null或undefined,则返回false;否则返回0。