我需要找到一個key
,其中包含一個對象a
。它不應該返回包含數組或字符串的鍵。例如,在a
它應該返回我d
但不b
或c
如何獲取密鑰包含下劃線中的對象?
a = {"b" : "hi","c":[1,2,3],"d":{"2:":3}};
這裏是剪斷我試過了。它返回Object的第一個實例。但我不需要數組實例只是一個字典。
var _ = require(underscore);
_.findKey(a,_.isObject);
我需要找到一個key
,其中包含一個對象a
。它不應該返回包含數組或字符串的鍵。例如,在a
它應該返回我d
但不b
或c
如何獲取密鑰包含下劃線中的對象?
a = {"b" : "hi","c":[1,2,3],"d":{"2:":3}};
這裏是剪斷我試過了。它返回Object的第一個實例。但我不需要數組實例只是一個字典。
var _ = require(underscore);
_.findKey(a,_.isObject);
您可以使用普通的JS這個:
var keysThatContainObjects = Object.keys(a).filter(function(k) {
return typeof a[k] === "object" && !Array.isArray(a[k]);
}); //["d"]
1線
var keysThatContainObjects = Object.keys(a).filter(function(k) { return typeof a[k] === "object" && !Array.isArray(a[k]); }); //["d"]
如果對象具有「長度」屬性,該怎麼辦?也許最好使用'!Array.isArray(a [k])'... –
@RobM。 - 好點,編輯 - 絕對沒有想到這一點。 – tymeJV
任何方式在一行,,,多數民衆贊成我的興趣!!!!!這就是在下劃線中嘗試它的原因 –
我很乾淨的方法是使用pick
從underscore
var a = {"b" : "hi","c":[1,2,3],"d":{"2:":3}};
var aFiltered = _.pick(a, function() {
return _.isObject(value);
});
它甚至選擇一個數組類型...我只需要字典。在return語句中,我們需要否定數組類型。 –
'_ .isObject'將不起作用,因爲數組是對象。 – Barmar