我试图编写一个箭头函数来仅计算正整数(不包括分数)的平方。
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
"use strict";
const squaredIntegers = (arr) => {
let arrayChoosen = arr.filter(ele => ele > 0 && Number.isInteger(ele));
return arrayChoosen.map(x => x * x);
}
return squaredIntegers;
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
但是结果是一个函数声明,而不是我期望的数组。但是当我尝试以这种方式修改代码
const squareList = (arr) => {
"use strict";
let squaredIntegers = arr.filter(ele => ele > 0 && Number.isInteger(ele));
squaredIntegers = squaredIntegers.map(val => val * val);
return squaredIntegers;
};
然后输出我期望的数组。 为什么在第一种情况下它不起作用?
答案 0 :(得分:1)
您需要返回const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
"use strict";
const squaredIntegers = (arr) => {
let arrayChoosen = arr.filter(ele => ele > 0 && Number.isInteger(ele));
return arrayChoosen.map(x => x * x);
}
return squaredIntegers(arr);
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
函数的返回值,因此请尝试使用以下代码:
squaredIntegers
答案 1 :(得分:0)
因为仅返回函数名称-即-对函数的引用。
相反,您应该调用该函数:
return squaredIntegers();
您的第二个示例工作正常,因为您实际上是在调用arr.filter()
并将其值分配给squaredIntegers
答案 2 :(得分:0)
您需要使用<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Sales_details extends Model
{
protected $table = 'sales_details';
protected $primaryKey = 'id';
public $timestamps = false;
public function sale()
{
return $this->belongsTo('App\Sale', 'sales_id', 'id');
}
public function product()
{
return $this->belongsTo('App\Product', 'product_id');
}
}
调用squaredIntegers
来获取新数组。
arr
return squaredIntegers(arr);
答案 3 :(得分:0)
因为第一个STATIC_ROOT = os.join.path(BASE_DIR, 'static')
返回函数本身,而不是返回在输入squareList
上调用的函数。您可以改为arr
调用它:
return
答案 4 :(得分:0)
因为当您需要返回函数调用的结果时返回函数。检查更正的代码。
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
const squareList = (arr) => {
"use strict";
const squaredIntegers = (arr) => {
let arrayChoosen = arr.filter(ele => ele > 0 && Number.isInteger(ele));
return arrayChoosen.map(x => x * x);
}
return squaredIntegers(arr);
};
// test your code
const squaredIntegers = squareList(realNumberArray);
console.log(squaredIntegers);
答案 5 :(得分:0)
您返回的是函数而不是函数调用。
将input()
更改为return squaredIntegers;
;
所以它将变成
return squaredIntegers(arr)