JavaScript 基础篇之对象、数组使用介绍(三)_基础知识
对象我们在前面也简单介绍过,它是一种将多个数据值集中在一个单元的东西,使用名字来存取,它是一个无序的属性集合。
1、创建对象的几种方式
var empty = {} //创建一个没有属性的对象。
var person = {name:"ben",age:22,sex:'男'}//使用直接量创建对象
var people = {{name:'Frank',age:21},{name:'Mary',age:21},sex:'MAN'}// 对象的元素可以是对象
2、对象属性
var person = {}; //创建一个对象
person.name = "Frank"; //添加属性
person.country = "china";
person.age = 22;
person.american = new Object(); //这个属性是个对象
person.american.name = "Lisa";
person.american.country = "American";
person.american.age = 20;
function displayperson(personmore) //打印上面的对象
{
for(var p in personmore) //枚举循环
{
if(typeof(personmore[p]) == "object")//判断类型
{
for(var o in personmore[p])
{
document.write("American people :" +o+"\t" +personmore[p][o]+"
");
}
document.write("
");
continue;//结束本次循环,进行下一次循环.
document.write("china people :"+ p+"\t" + personmore[p] +"
");
}
}
displayperson(person);//调用函数
//输出china people :name Frank
//china people :country china
//china people :age 22
//American people :name Lisa
//American people :country American
//American people :age 20
3、删除属性
使用delete运算符
delete person.american;//就可以自己删除对象的属性
delete 是不能删除对象的。
4、hasOwnProperty()方法和isPrototypeOf()方法
其实这两个方法,在这里说初学的朋友可能会和我当时学到这里一样,看不懂,但是没关系,可以跳过去,到时候我们学到继承的时候你在回头看看,
就明白了。
4.1:hasOwnProperty()方法,如果对象用一个单独字符串参数所指定的名字来本地定义一个非继承的属性,就返回true。否则返回false。
function House(price,area,developers)
{
this.price = price;
this.area = area;
this.developers = developers;
}
House.prototype.housevalue = function(){return this.price*this.area;}
function HouseSon(price,area,developers,city)
{
House.call(this,price,area,developers);
this.city = city;
}
HouseSon.prototype = new House(10000,80,"vanke");//获取House的属性
delete HouseSon.prototype.price;//删除
delete HouseSon.prototype.area;
delete HouseSon.prototype.developers;
HouseSon.prototype.container = function(){return "container" + this.price * this.area;}
for(var i in HouseSon.prototype)
{
document.write(i+"
");
}
var house = new HouseSon(20000,180,"vanke","shenzhen");
document.write(house.container()+"
");
document.write(house.housevalue()+"
");
document.write(house.hasOwnProperty("housevalue")+"
");//这是原型
document.write(house.hasOwnProperty("price")+"
");//本地
Javascript:数组
数组是一个有序的集合,每个元素在数组中都有一个数字化的位置,可以使用小标访问,由于javascript是一种非数据类型的语言,所以里面可以包涵不同类型。
1、数组的创建
var array = [] //不包涵任何元素的数组
var person = ["Frank",22,'男 '];//带不同元素的数组
var value = 100;
var num = [value+12,value-23,value*2];//支持表达式
//当然还有使用Array来创建,可以有不同类型的参数,可以是对象,数组等。
2、数组的添加,删除,遍历。
由于添加,遍历都比较简单,就不举例说明,但是这么还是说说删除吧!
function diaplayarray(arr) //执行打印任务的函数
{
if(!arr)return;
for(var num =0;num
document.write("Num is "+ arr[num]+ "\t");
}
document.write(" "+"
");
}
var array = [2,32,14,57,6];
document.write(array.shift()+"
"); //删除数组中的第一个,返回删除的值2
document.write(array.pop()+"
"); //删除数组中的最后一个,返回删除的值6
document.write(array.join("*")+"
");//将数组元素用*连接返回一个字符串32*14*57
document.write(array.push(100) +"
");//添加数组元素
array.reverse();//颠倒数组元素顺序
diaplayarray(array);//输出Num is 100 Num is 5 Num is 4 Num is 3
array.splice(1,2,300,600);//从数组第二个开始删除(含第二个),到第三个,后面300,600是新插入的值
diaplayarray(array);//输出Num is 100 Num is 300 Num is 600 Num is 32
小结:同志们辛苦了..........
关于对象和数组就介绍到这里吧,接下来我们马上就要到javascript客户端了。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

使用foreach循環移除PHP數組中重複元素的方法如下:遍歷數組,若元素已存在且當前位置不是第一個出現的位置,則刪除它。舉例而言,若資料庫查詢結果有重複記錄,可使用此方法移除,得到不含重複記錄的結果。

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

在PHP中執行陣列深度複製的最佳實踐是:使用json_decode(json_encode($arr))將陣列轉換為JSON字串,然後再轉換回陣列。使用unserialize(serialize($arr))將陣列序列化為字串,然後將其反序列化為新陣列。使用RecursiveIteratorIterator迭代器對多維數組進行遞歸遍歷。

在C++中,函數傳回物件需要注意三點:物件的生命週期由呼叫者負責管理,以防止記憶體洩漏。避免懸垂指針,透過動態分配記憶體或返回物件本身來確保物件在函數返回後仍然有效。編譯器可能會最佳化傳回物件的副本生成,以提高效能,但如果物件是值語義傳遞的,則無需副本生成。
