Javascript新手,仍然对参数
感到困惑以下是一些代码:
var people = [{
name: 'Casey',
rate: 60
},
{
name: 'Camille',
rate: 80
},
{
name: 'Gordon',
rate: 75
},
{
name: 'Nigel',
rate: 120
}
];
function priceRange(person) {
return (person.rate >= 65) && (person.rate <= 90);
};
var results = [];
results = people.filter(priceRange);
我知道这是一个非常基本的问题,但我只想知道参数“人”。计算机怎么知道参数“人”来自对象“人”?
答案 0 :(得分:1)
import pandas as pd
import numpy as np
import pandas.io.data as web
import datetime
# We will look at stock prices over the past year, starting at January 1, 2016
start = datetime.datetime(2016,1,1)
end = datetime.date.today()
stock = "GCG17.CMX"
# get stock data, from yahoo finance within the dates specified
stock = web.DataReader(stock, "yahoo", start, end)
stock.head(n=3)
OSError: after 3 tries, Yahoo! did not return a 200 for url 'http://ichart.finance.yahoo.com/table.csv?s=GCG17.CMX&a=0&b=1&c=1970&d=0&e=22&f=2017&g=d&ignore=.csv'
这是一个数组
[....]
这是一个文字对象。
↪{attr1:'val1', attr2: 'val2',. ...}
是文字对象 s 的ARRAY,每个对象都有两个属性(键):name&amp;率。
由于people
是一个数组,因此Array类提供了一组方法,即people
,它接受第一个参数:FUNCTION。
filter()
将为每个项运行函数(filter()
的1ˢᵗ参数),然后如果它返回filter
,则它接受该元素,反之亦然。
让我们来看一个比你所拥有的更简单的例子:让我们采取true
an Array of digits
以上示例过滤所有小于或等于100的数字,并且只保留数字超过100。
答案 1 :(得分:0)
Array.prototype.filter()
函数遍历调用它的数组,并以每个元素作为参数调用回调函数。因此,当您使用people.filter(priceRange)
时,filter()
函数会使用priceRange
的每个元素调用people
。 filter()
的代码是这样的(我已经大大简化了它,只是为了展示这部分是如何工作的):
function filter(callback) {
var result = [];
for (var i = 0; i < this.length; i++) {
if (callback(this[i])) {
result.push(this[i]); // This gets person from people
}
}
return result;
}