javascript之slice方法
大苹果

javascript之slice方法

定义和用法slice()方法可从已有的数组中返回选定的元素。语法arrayObject.slice(start,end)参数描述start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1指最后一个元素,-2指倒数第二个元素,以此类推。end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。返回值返回一个新的数组,包含从start到end(不包括该元素)的arrayObject中的元素。说明请注意,该方法并不会修改数组,而是返回一个子数组。如果想删除数组中的一段元素,应该使用方法Array.splice()。提示和注释注释:您可使用负值从数组的尾部选取元素。注释:如果end未被规定,那么slice()方法会选取从start到数组结尾的所有元素。实例例子1在本例中,我们将创建一个新数组,然后显示从其中选取的元素:<scripttype="text/javascript">vararr=newArray(3)arr[0]="George"arr[1]="John"arr[2]="Thomas"document.write(arr+"<br/>")document.write(arr.slice(1)+"<br/>")document.write(arr)</script>输出:George,John,ThomasJohn,ThomasGeorge,John,Thomas例子2在本例中,我们将创建一个新数组,然后显示从其中选取的元素:<scripttype="text/javascript">vararr=newArray(6)arr[0]="George"arr[1]="John"arr[2]="Thomas"arr[3]="James"arr[4]="Adrew"arr[5]="Martin"document.write(arr+"<br/>")document.write(arr.slice(2,4)+"<br/>")document.write(arr)</scrip

javascript,Slice,函数 6年前
ElasticSearch安装
大苹果

ElasticSearch安装

Windows上安装ES下载软件Elasticsearch的官方地址(opensnewwindow)下载地址(opensnewwindow)安装软件Windows版的Elasticsearch的安装很简单,解压即安装完毕,这里我下载的目前最新版8.3.3,解压后的Elasticsearch的目录结构如下目录含义bin可执行脚本config配置目录jdk内置JDK目录lib类库logs日志目录modules模块目录plugins插件目录解压后,我们先来修改一些配置:1、配置启动内存,修改配置文件conf/jvm.options##################################################################IMPORTANT:JVMheapsize##################################################################配置启动内存,默认是4G-Xms1g-Xmx1g################################################################2、暂时禁止掉再次启动时更新地图的一些数据库操作,修改conf/elasticsearch.yml配置#添加配置:暂时禁止掉再次启动时更新地图的一些数据库操作ingest.geoip.downloader.enabled:false3、测试时可以暂时关闭用户密码和SSL,将下图中的true全部改为false:4、进入bin文件目录,点击elasticsearch.bat文件启动服务启动完成后,打开浏览器,输入:http://localhost:9200/重置密码如果安装步骤中第三步,你没有修改elasticsearch.yml配置为false,那么你第一次启动ES服务的时候,控制台会首先出现一些用户名及密码,切记要先保存下来!启动完成后,访问:https://127.0.0.1:9200/,输入用户名及密码,用户名为elastic,密码就是第一次启动时控制台显示的密码如果你

ElasticSearch 3月前
设计模式的六大原则
大苹果

设计模式的六大原则

设计模式设计模式的六大原则原则一:单一职责原则定义:一个类只负责一项职责。讨论:主要疑难点就是如何控制住职责扩散(所谓职责扩散,就是,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。)?遵循单一职责原的优点有:1.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;提高类的可读性,提高系统的可维护性;2.变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。(需要说明的一点是单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则)。原则二:里氏替换原则定义1:如果对每一个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型T2是类型T1的子类型。定义2:所有引用基类的地方必须能透明地使用其子类的对象讨论:有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完成,则子类B在完成新功能P2的同时,有可能会导致原有功能P1发生故障。里氏替换原则通俗的来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。它包含以下4层含义:1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。2.子类中可以增加自己特有的方法。3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。原则三:依赖倒置原则定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。讨论:问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。在实际编程中

设计原则 4月前
ElasticSearch集群搭建
大苹果

ElasticSearch集群搭建

概述单机&amp;集群单台Elasticsearch服务器提供服务,往往都有最大的负载能力,超过这个阈值,服务器性能就会大大降低甚至不可用,所以生产环境中,一般都是运行在指定服务器集群中。除了负载能力,单点服务器也存在其他问题:单台机器存储容量有限单服务器容易出现单点故障,无法实现高可用单服务的并发处理能力有限配置服务器集群时,集群中节点数量没有限制,大于等于2个节点就可以看做是集群了。一般出于高性能及高可用方面来考虑集群中节点数量都是3个以上。集群Cluster一个集群就是由一个或多个服务器节点组织在一起,共同持有整个的数据,并一起提供索引和搜索功能。一个Elasticsearch集群有一个唯一的名字标识,这个名字默认就是elasticsearch。这个名字是重要的,因为一个节点只能通过指定某个集群的名字,来加入这个集群。节点Node集群中包含很多服务器,一个节点就是其中的一个服务器。作为集群的一部分,它存储数据,参与集群的索引和搜索功能。一个节点也是由一个名字来标识的,默认情况下,这个名字是一个随机的漫威漫画角色的名字,这个名字会在启动的时候赋予节点。这个名字对于管理工作来说挺重要的,因为在这个管理过程中,你会去确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。一个节点可以通过配置集群名称的方式来加入一个指定的集群。默认情况下,每个节点都会被安排加入到一个叫做elasticsearch的集群中,这意味着,如果你在你的网络中启动了若干个节点,并假定它们能够相互发现彼此,它们将会自动地形成并加入到一个叫做elasticsearch的集群中。在一个集群里,只要你想,可以拥有任意多个节点。而且,如果当前你的网络中没有运行任何Elasticsearch节点,这时启动一个节点,会默认创建并加入一个叫做elasticsearch的集群。集群搭建说明集群搭建同样会区分7.x版本及8.x版本,其中,Windows下的集群搭建,8.x版本就不搞证书之类的了,linux下我们会使用https证书,毕竟实际生产环境大部分是linux。Windows集群搭建7.X(7.8.0)集群搭建集群准备1、首先创建es-cluster文件夹,将elasticsearch

ElasticSearch 3月前