Post Jobs

JavaScript数组去重算法实例小结,7图文教程

  1. 解压mysql-5.7.11-winx64.zip 到某文件夹,
    如C:\DevelopCommon\mysql-5.7.11-winx64。

  2. 配置环境变量

本文实例总结了JavaScript数组去重算法。分享给大家供大家参考,具体如下:

一、什么是魔术方法:

变量名 : MYSQL_HOME

测试用例:

PHP为我们提供了一系列用__开头的函数,这些函数无需自己手动调用,会在合适的时机自动调用,这类函数称为魔术函数。
例如:

变量值 : C:\DevelopCommon\mysql-5.7.11-winx64

arr =
[“1″,3,”1″,1,4,5,1,”2”,5,1,{“name”:”li”,”age”:20},2,4,3,{“name”:”li”,”age”:20},””];

function __construct(){} 在new一个新对象时自动调用此函数

变量名 : Path

方法一:借助于临时数组与indexOf , 算法复杂度为:O(n^2)

二、PHP中都有那些魔术方法,以及它们的作用:

变量值 : %MYSQL_HOME%\bin

function unique1(arr){
  var temp = [];
  for(var i=0; i<arr.length; i++){
    if(temp.indexOf(arr[i]) == -1){
      temp.push(arr[i]);
    }
  }
  return temp;
}

1.__construct():构造函数,new对象时自动调用

  1. 以管理员身份进入 C:\DevelopCommon\mysql-5.7.11-winx64\bin目录;

测试结果:

eg:

(在window菜单下搜索命令提示符, 右键以管理员身份运行)

unique1(arr) : [“1”, 3, 1, 4, 5, “2”, Object { name=”li”, age=20},
2, Object { name=”li”, age=20}, “”]

class Person{
    public $name;
    public $age;

    function __construct($name,$age){
      $this->name=$name;
      $this->age=$age;
    }
}
  1. 执行 mysqld install命令 安装mysql

bug 无法区分对象

 在new新的Person对象时会自动调用__construct()函数,将传入的参数分别赋给$name,$age。

执行 mysqld –initialize 命令 初始化data目录(注意不要拼错了)

方法二 : 用JavaScript中的Object对象来当作哈希表

2.__destruct():析构函数,当一个对象被销毁前自动调用

执行 net start mysql命令,此时出现net不是系统内部或外部命令。。。

function unique2(arr){
  var temp=[];
  var hash={};
  for(var i=0; i<arr.length;i++){
    if(!hash[arr[i]]){
      hash[arr[i]]=true;
      temp.push(arr[i]);
    }
  }
  return temp;
}
class Person{
    public $name;
    public $age;

    function __destruct(){
    echo "这个对象被销毁了";
  }
}

在环境变量中增加配置如下:

测试结果:

同上所述,对象被销毁时执行此魔术方法

变量名 : Path

unique2(arr) : [“1”, 3, 4, 5, “2”, Object { name=”li”, age=20}, “”]

3.__get():访问类中私有属性时自动调用,传递读取属性名,返回$this->属性名

   变量值 : ;%SystemRoot%\system32;

bug : 无法区分: 1 和 “1”

class Person{
    private $name;
    public $age;

    function __get($name){
     return $this->$name;
    }
}

再次执行 net start mysql命令

修改

如上代码,$name被设为私有属性后不能直接通过$this->name;的方式读取,因此需要设置__get()魔术方法来读取。

图片 1

function unique2(arr){
  var temp=[];
  var hash={};
  for(var i=0; i<arr.length;i++){
      var item = arr[i];
    var key = typeof(item)+item;
    if(!hash[key]){
      hash[key]=true;
      temp.push(arr[i]);
    }
  }
  return temp;
}

4.__set():给类的私有属性赋值时自动调用,传递需设置的属性名,属性值

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图