![](/img/trans.png)
[英]What techniques can be used to define a class in JavaScript, and what are their trade-offs?
[英]What javascript techniques are used in this array parser?
我有以下腳本可以轉儲給定數組的內容
function dump(obj) {
obj = obj || {};
var result = [];
$.each(obj, function (key, value) { result.push('"' + key + '":"' + value + '"'); });
return '{' + result.join(',') + '}';
}
...但是我不理解它的“數組”功能。 您能告訴我我需要學習什么才能理解.each語句中的內容嗎?
更新資料
下面的e.values
是obj外觀的示例。
這對each
http://api.jquery.com/jQuery.each/使用jQuery進行迭代。 這是您的dump
function
發生的事情:
function dump(obj) {
// If 'obj' is falsy then make 'obj' a new Object
obj = obj || {};
// Create a new Array
var result = [];
// Loop over each property in 'obj' and add
// "key":"val" String to the 'result' Array,
$.each(obj, function (key, value) { result.push('"' + key + '":"' + value + '"'); });
// Join the Array using "," as the delimiter and wrap
// this with { ... }. Example of arr.join():
// var arr = [1, 2, 3];
// console.log(arr.join(".")); // "1.2.3"
// console.log(arr.join("|")); // "1|2|3"
return '{' + result.join(',') + '}';
}
編輯如果需要獲取任意Object
的密鑰,則可以使用:
function getKeys(obj) {
var keys = [],
i;
for (var i in obj) {
if (obj.hasOwnProperty(i)) {
keys.push(i);
}
}
return keys;
}
var keys = getKeys({key: "value"}); // ["key"]
這是一個有效的例子 。
您也可以看看Underscore.js的_.keys() 。
根據您留下的評論,似乎您的主要問題是關於如何獲取對象的鍵。
首先,在代碼示例中,jQuery作為每個函數的一部分自動為您完成:
$ .each(obj,函數(鍵,值)...
如果您需要自己進行操作,現代瀏覽器具有keys屬性:Object.keys(obj)
https://developer.mozilla.org/zh-CN/JavaScript/Reference/Global_Objects/Object/keys
對於較舊的瀏覽器,您需要使用for循環(請注意HasOwnProperty測試):
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.