Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript:变量定义vs函数未定义_Javascript_Arrays - Fatal编程技术网

javascript:变量定义vs函数未定义

javascript:变量定义vs函数未定义,javascript,arrays,Javascript,Arrays,我有两个阵列: array1 = ["one", "two"]; array2 = ["two", "four"]; 如果我写: var inetersection = array1.filter(function(n){ return array2.indexOf(n) != -1 }); 我得到了正确的答案:“两个” 但如果我写一个函数: function intersection (array1, array2){ array1.filter(function(n)

我有两个阵列:

array1 = ["one", "two"];
array2 = ["two", "four"]; 
如果我写:

var inetersection = array1.filter(function(n){
    return array2.indexOf(n) != -1 
 });
我得到了正确的答案:“两个”

但如果我写一个函数:

function intersection (array1, array2){
   array1.filter(function(n){
   return array2.indexOf(n) != -1
   });
}
然后
console.log(交叉点(array1,array2))返回未定义的


第二种语法有什么问题?

您的函数
交集
不返回任何内容


只需在函数的第1行添加一个
返回
函数的
交点
不返回任何内容


只需在函数的第1行添加一个
return
,交叉点函数没有return语句。 您需要这样做:

function intersection (array1, array2){
   return array1.filter(function(n){
      return array2.indexOf(n) != -1
   });
}

交集函数没有返回语句。 您需要这样做:

function intersection (array1, array2){
   return array1.filter(function(n){
      return array2.indexOf(n) != -1
   });
}

您只需要在array.filter调用之前添加一个return

var array1=[“一”、“二”];
变量array2=[“二”,“四”];
功能交叉点(阵列1、阵列2){
返回阵列1.过滤器(函数(n){
返回数组2.indexOf(n)!=-1;
});
}

控制台日志(交叉点(array1,array2))您只需要在array.filter调用之前添加一个返回

var array1=[“一”、“二”];
变量array2=[“二”,“四”];
功能交叉点(阵列1、阵列2){
返回阵列1.过滤器(函数(n){
返回数组2.indexOf(n)!=-1;
});
}

控制台日志(交叉点(array1,array2))您必须在
array1.过滤器之前添加return

function intersection (array1, array2){
   return array1.filter(function(n){
   return array2.indexOf(n) != -1
   });
}
注:此方法是ECMA-262标准的JavaScript扩展;作为 这种情况可能不会出现在标准的其他实现中。 要使其工作,您需要在您的应用程序顶部添加以下代码 脚本:

if(!Array.prototype.filter){
Array.prototype.filter=函数(fun/*,thisp*/){
var len=此长度;
如果(乐趣的类型!=“功能”)
抛出新的TypeError();
var res=新数组();
var thisp=参数[1];
对于(变量i=0;i

您必须在
数组1之前添加return。过滤器要

function intersection (array1, array2){
   return array1.filter(function(n){
   return array2.indexOf(n) != -1
   });
}
注:此方法是ECMA-262标准的JavaScript扩展;作为 这种情况可能不会出现在标准的其他实现中。 要使其工作,您需要在您的应用程序顶部添加以下代码 脚本:

if(!Array.prototype.filter){
Array.prototype.filter=函数(fun/*,thisp*/){
var len=此长度;
如果(乐趣的类型!=“功能”)
抛出新的TypeError();
var res=新数组();
var thisp=参数[1];
对于(变量i=0;i

函数不会返回任何内容。如何修复它:

function intersection (array1, array2){
   return array1.filter(function(n){
       return array2.indexOf(n) != -1
   });
}
为什么? 所以变量有一个值,让我们从这个开始:

var hello_world = "Hello World!";
这是在将
hello\u world
的值设置为
“hello world!”
。这很简单。

解释! 现在让我们用一个函数来试一下

function addNumbers (number_1, number_2) {
    number_1 + number_2;
}
现在让我们运行这个函数

addnumber(1,2)
未定义

为什么我们得到未定义的
?让我们回到第一个示例,在控制台中键入类似的内容

>“你好,世界!”

“你好,世界!”

当我们键入字符串“Hello World!”
时,它会重新运行字符串。这个规则是在JavaScript中预设的,但是当您创建自己的函数时,它不知道返回什么,原因是,让我们以jQuery为例。你可以做:

var elem = $("#element");
让我们来看第一部分。所以有一个函数叫做
$
,这个函数可能做了很多事情。首先,它获取具有
id
元素
的元素。它将该元素存储在
elem
中。这个函数可能做了很多事情,但是它没有返回任何东西。返回某物就是设置函数的值。以下是两个例子:

var function_1 = function () {
    alert("Hello!");
};

var function_2 = function () {
    return function () {
        alert("Hello");
    }
}
现在我在函数2中到底做了什么?这是什么

var variable_1 = function_1();
console.log(variable_1);
未定义

变量_1
未定义,但仍发出警报。这是因为它运行了函数,但返回了未定义的。所以
变量_1
不是一个函数;因为
变量_1
未定义。让我们看看
函数_2

var variable_2 = function_2();
console.log(variable_2);
这也有点混乱,因为
function\u 2
返回一个函数,它将
variable\u 2
设置为返回的函数。这就是为什么这个效果很好



希望这是有道理的

函数不返回任何内容。如何修复它:

function intersection (array1, array2){
   return array1.filter(function(n){
       return array2.indexOf(n) != -1
   });
}
为什么? 所以变量有一个值,让我们从这个开始:

var hello_world = "Hello World!";
这是在将
hello\u world
的值设置为
“hello world!”
。这很简单。

解释! 现在让我们用一个函数来试一下

function addNumbers (number_1, number_2) {
    number_1 + number_2;
}
现在让我们运行这个函数

addnumber(1,2)
未定义

为什么我们得到未定义的
?让我们回到第一个示例,在控制台中键入类似的内容

>“你好,世界!”

“你好,世界!”

当我们键入字符串“Hello World!”
时,它会重新运行字符串。这个规则是在JavaScript中预设的,但是当您创建自己的函数时,它不知道返回什么,原因是,让我们以jQuery为例。你可以做:

var elem = $("#element");
让我们来看第一部分。所以有一个函数叫做
$
,这个函数可能做了很多事情。首先,它是