cara terbaik untuk mendapatkan kunci kunci/nilai objek javascript

Jika saya memiliki JS objek seperti:

var foo = { 'bar' : 'baz' }

Jika aku tahu bahwa foo memiliki dasar kunci/nilai struktur, tapi don't tahu nama kunci, apa yang's cara termudah untuk mendapatkannya? untuk ... di? $.masing-masing()? Saya berharap ada's sesuatu yang lebih baik....

Mengomentari pertanyaan (2)

Anda akan iterate dalam objek dengan untuk loop:

for(var i in foo){
  alert(i); // alerts key
  alert(foo[i]); //alerts key's value
}

Atau

Object.keys(foo)
  .forEach(function eachKey(key) { 
    alert(key); // alerts key 
    alert(foo[key]); // alerts value
  });
Komentar (6)

Anda dapat mengakses setiap tombol secara individual tanpa iterasi seperti pada:

var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second
Komentar (1)
Larutan

Jika anda ingin mendapatkan semua kunci, ECMAScript 5 diperkenalkan Objek.tombol. Ini hanya didukung oleh browser yang lebih baru tetapi MDC dokumentasi memberikan alternatif implementasi (yang juga menggunakan untuk...di btw):

if(!Object.keys) Object.keys = function(o){
     if (o !== Object(o))
          throw new TypeError('Object.keys called on non-object');
     var ret=[],p;
     for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
     return ret;
}

Tentu saja jika anda ingin investasi, kunci dan nilai, maka untuk...di adalah satu-satunya solusi yang masuk akal.

Komentar (5)

Mengingat Objek anda:

var foo = { 'bar' : 'baz' }

Untuk mendapatkan bar, menggunakan:

Object.keys(foo)[0]

Untuk mendapatkan baz, menggunakan:

foo[Object.keys(foo)[0]]

Dengan asumsi satu objek

Komentar (0)

A salah satu kapal untuk anda:

const OBJECT = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3',
    'key4': 'value4'
};

const value = 'value2';

const key = Object.keys(OBJECT)[Object.values(OBJECT).indexOf(value)];

window.console.log(key); // = key2
Komentar (1)

Ini adalah yang paling sederhana dan cara yang mudah. Ini adalah bagaimana kita melakukan hal ini.

var obj = { 'bar' : 'baz' }
var key = Object.keys(obj)[0];
var value = obj[key];

 console.log("key = ", key) // bar
 console.log("value = ", value) // baz
Komentar (1)

Saya sedang mengalami masalah yang sama dan ini adalah apa yang bekerja

//example of an Object
var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};

//How to access a single key or value
var key = Object.keys(person)[0];
var value = person.firstName;
Komentar (1)
// iterate through key-value gracefully
const obj = { a: 5, b: 7, c: 9 };
for (const [key, value] of Object.entries(obj)) {
  console.log(`${key} ${value}`); // "a 5", "b 7", "c 9"
}

Merujuk MDN

Komentar (0)

Saya don't melihat apa-apa lagi dari untuk (var key di foo).

Komentar (0)

Cara termudah adalah dengan hanya menggunakan Underscore.js:

kunci

_.kunci-kunci(objek) Mengambil semua nama-nama benda's properties.

_.kunci-kunci({one : 1, dua : 2, tiga : 3}); => ["", "dua", "tiga"]

Ya, anda perlu ekstra perpustakaan, tapi itu's begitu mudah!

Komentar (2)

Objek.kunci-kunci() Objek.kunci-kunci() method ini mengembalikan sebuah array dari objek yang diberikan's sendiri enumerable sifat, dalam urutan yang sama seperti yang disediakan oleh untuk...dalam loop (perbedaan adalah bahwa yang di loop menyebutkan sifat dalam prototipe jaringan).

var arr1 = Object.keys(obj);

Objek.nilai-nilai() Objek.nilai-nilai() method ini mengembalikan sebuah array dari objek yang diberikan's sendiri enumerable nilai properti, dalam urutan yang sama seperti yang disediakan oleh untuk...dalam loop (perbedaan adalah bahwa yang di loop menyebutkan sifat dalam prototipe jaringan).

var arr2 = Object.values(obj);

Untuk lebih lanjut silahkan kunjungi di sini

Komentar (0)

Karena anda menyebutkan $.masing-masing(), di sini's yang berguna pendekatan yang akan bekerja di jQuery 1.6+:

var foo = { key1: 'bar', key2: 'baz' };

// keys will be: ['key1', 'key2']
var keys = $.map(foo, function(item, key) {
  return key;
});
Komentar (0)

Tidak ada cara lain selain untuk ... dalam. Jika anda don't ingin menggunakan itu (parhaps karena itu's marginal yang tidak efisien harus uji hasOwnProperty pada setiap iterasi?) kemudian gunakan berbeda membangun, misalnya array kvp's:

[{ key: 'key', value: 'value'}, ...]
Komentar (0)

penggunaan untuk masing-masing loop untuk mengakses tombol-tombol pada Objek atau Peta dalam javascript

for(key in foo){
   console.log(key);//for key name in your case it will be bar
   console.log(foo[key]);// for key value in your case it will be baz
}

Catatan: anda juga dapat menggunakan

Objek.kunci-kunci(foo);

ini akan memberi anda seperti ini output:

[bar];

Komentar (0)

Nah $.masing-masing adalah sebuah perpustakaan yang membangun, sedangkan untuk ... di asli js, yang harus lebih baik

Komentar (0)

untuk menampilkan string, cukup gunakan:

console.log("they are: " + JSON.stringify(foo));
Komentar (0)