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");
让我们来看第一部分。所以有一个函数叫做$
,这个函数可能做了很多事情。首先,它是