利用jQuery操作對象數組的實現代碼

來源:互聯網
上載者:User

jQuery對於數組元素操作主要提供了以下工具:
(1)數組和對象的例遍:jQuery.each(obj,callback)
通用例遍方法,可用於例遍對象和數組。回呼函數擁有兩個參數:第一個為對象的成員或數組的索引,第二個為對應變數或內容。如果需要退出 each 迴圈可使回呼函數返回 false,其它傳回值將被忽略。
(2)數組元素的過濾:jQuery.grep(array,callback,[invert])
使用過濾函數過濾數組元素。此函數至少傳遞兩個參數:待過濾數組和過濾函數。過濾函數必須返回 true 以保留元素或 false 以刪除元素。
(3)數組元素的尋找:jQuery.inArray(value,array)
確定第一個參數在數組中的位置(如果沒有找到則返回 -1 )。
(4)重複資料刪除元素:jQuery.unique(array)
刪除數組中重複元素。
下面的執行個體通過對象數組的過濾來實現擷取或者刪除指定屬性為指定值的數組元素。
複製代碼 代碼如下:
<script src="js/jquery.js" ></script>
<script>
/**
* 從對象數組中刪除屬性為objPropery,值為objValue元素的對象
* @param Array arrPerson 數組對象
* @param String objPropery 對象的屬性
* @param String objPropery 對象的值
* @return Array 過濾後數組
*/
function remove(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]!=objValue;
});
}
/**
* 從對象數組中擷取屬性為objPropery,值為objValue元素的對象
* @param Array arrPerson 數組對象
* @param String objPropery 對象的屬性
* @param String objPropery 對象的值
* @return Array 過濾後的數組
*/
function get(arrPerson,objPropery,objValue)
{
return $.grep(arrPerson, function(cur,i){
return cur[objPropery]==objValue;
});
}
/**
* 顯示對象數組資訊
* @param String info 提示資訊
* @param Array arrPerson 對象數組
*/
function showPersonInfo(info,arrPerson)
{
$.each(arrPerson, function(index,callback){
info+="Person id:" + arrPerson[index].id + " name:" + arrPerson[index].name+ " sex:"+ arrPerson[index].sex+" age:"+ arrPerson[index].age+"\r\t";
});
alert(info);
}
//測試資料
var arrPerson=new Array();
var person=new Object();
person.id=1;
person.name="帥哥";
person.sex="男";
person.age=30;
arrPerson.push(person);
person=new Object();
person.id=2;
person.name="美眉甲";
person.sex="女";
person.age=28;
arrPerson.push(person);
person=new Object();
person.id=3;
person.name="美眉乙";
person.sex="女";
person.age=20;
arrPerson.push(person);
//測試刪除
showPersonInfo("原始數組:\r\t",arrPerson);
arrPerson=remove(arrPerson,"id",1);
showPersonInfo("刪除之後:\r\t",arrPerson);
//測試擷取
arrPerson=get(arrPerson,"id",3);
showPersonInfo("只擷取ID為3的元素:\r\t",arrPerson);
</script>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.