在过滤器阵列上切片参数?

时间:2016-04-27 22:49:28

标签: javascript filter indexof

我一直在免费代码阵营上做这个课程几个小时,然而,我找到了一个我不理解的解决方案,并且我试图在每行记录,因为我实现并理解它以供将来参考和我已经理解了一些行,但我无法理解这段代码的某些部分:

<rewrite>
  <rules>
    <rule name="Force HTTPS" enabled="true">
      <match url="(.*)" ignoreCase="false" />
      <conditions>
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

我已经检查了文档,我发现很难理解这个示例中的代码看起来非常不同。我真的很感谢你的帮助!

2 个答案:

答案 0 :(得分:1)

    您不了解的代码部分中的
  1. arr是指传递给destroyer函数的第一个参数;在这种情况下,数组[1, 2, 3, 1, 2, 3]
  2. arr.filter正在使用Array.filter方法创建&#34;过滤&#34;数组的版本只包含那些通过&#34; test&#34;由function(element) { return args.indexOf(element) === -1; }
  3. 定义
  4. 该函数使用Array.indexOf检查切片的args数组(您正确识别为等于[2, 3])是否包含给定的element。因为indexOf在找不到元素时返回-1,所以检查该值等同于检查指定的元素是否在数组中
  5. 所有这些的结果 - 以及函数destroy的返回值 - 将是数组[1, 1],表示传递给destroy的数组的过滤版本,其中包含所有值不等于传递给destroy的其他值。

答案 1 :(得分:0)

Array.slice是数组prototype的一部分; prototype方法只能在类的实例上访问。

var arr = ['a', 'b', 'c', 'd'];
// [] is JavaScript shorthand for instantiating an Array object.
// this means that you can call:
arr.slice(someArg1);
arry.splice(someArg2);