取得すべてのキーのJavaScriptオブジェクト
-
25-09-2019 - |
質問
破壊も修復もおもしろくないレイクビューゴルフコースを抽出する方法をキーの連想配列の配列、またはカンマで区切られたリストをJavaScript(jQueryはokを押します。
options = {key1: "value1", key2: "value2"};
結果の配列:
["key1", "key2"]
ただの文字列:
"key1, key2"
解決
あなたは簡単に、たとえば、for
ループを介して、それらの配列を取得することができます:
var keys = [];
for(var key in options) {
if(options.hasOwnProperty(key)) { //to be safe
keys.push(key);
}
}
次に、たとえば、あなたが望むどのようkeys
を使用します:
var keyString = keys.join(", ");
あなたはここにのそれをテストすることができます。 .hasOwnProperty()
のチェックはしてめちゃめちゃ場合、誰に、安全であることですオブジェクトプロトタイプなど。
他のヒント
options = {key1: "value1", key2: "value2"};
keys = Object.keys(options);
それをやっての
A jQueryの道ます:
var keys = [];
options = {key1: "value1", key2: "value2"};
$.each(options, function(key, value) { keys.push(key) })
console.log(keys)
多くの主要なブラウザにおいてこの機能は内蔵の方法 Object.keys()
:
var keys = Object.keys(options);
//-> ["key1", "key2"]
を利用することも可能です少しのスニペットに適しているブラウザをサポートしないで
Object.keys = Object.keys || (function () {
var hasOwnProperty = Object.prototype.hasOwnProperty;
return function (o) {
if (typeof o != "object" && typeof o != "function" || o === null)
throw new TypeError("Object.keys called on a non-object");
var result = [];
for (var name in o) {
if (hasOwnProperty.call(o, name))
result.push(name);
}
return result;
};
})();
このスニペットの作品と全く同じすることに成功していNick Craverの例では2つの例外:
- をスローします意味のある例外に合格以外のオブジェクト(または"連想配列があるのは、する必要があります。
- で周囲の迷惑にDOMにおける課題Internet Explorerの場所蔵がないからなの
hasOwnProperty
方法。
こ(その他の回答はこちら)動作しないの周りの家の列挙型のバグを立てました。また、この情報を部分的に作用が この答えはこちら.
あなたは、jQueryので$.each()
を使用することができます:
function keyArray(obj) {
var rv = [];
$.each(options, function(key) { rv.push(key); });
return rv;
}
そして
var keys = keyArray(options);
あなたは文字列を取得することができ["key1", "key2"]
配列としてjoin
与えます。
所属していません StackOverflow