关于功能和参数

时间:2017-01-23 03:08:56

标签: javascript parameters

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);           

我知道这是一个非常基本的问题,但我只想知道参数“人”。计算机怎么知道参数“人”来自对象“人”?

2 个答案:

答案 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的每个元素调用peoplefilter()的代码是这样的(我已经大大简化了它,只是为了展示这部分是如何工作的):

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;
}