programing

키/값 JavaScript 개체의 키를 가져오는 방법

closeapi 2023. 7. 25. 20:58
반응형

키/값 JavaScript 개체의 키를 가져오는 방법

다음과 같은 JS 개체가 있는 경우:

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

내가 그것을 안다면,foo기본 키/값 구조를 가지고 있지만 키 이름을 알 수 없습니다. 어떻게 얻을 수 있습니까?for ... in?$.each()?

for 루프를 사용하여 개체 내부를 반복합니다.

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

또는

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

다음과 같이 반복하지 않고 각 키에 개별적으로 액세스할 수 있습니다.

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

모든 키를 가져오려면 ECMA스크립트 5가 도입되었습니다.이것은 최신 브라우저에서만 지원되지만 MDC 설명서는 대체 구현을 제공합니다.for...inbtw):

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;
}

둘 다 , 물론키값모원면다한두을와,▁of면다원▁you한,▁and,▁both.for...in그것이 유일하게 합리적인 해결책입니다.

목표가 주어지면

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

갖기 위해bar매개 변수:

Object.keys(foo)[0]

갖기 위해baz매개 변수:

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

단일 개체로 가정

이것이 가장 간단하고 쉬운 방법입니다.이렇게 하는 겁니다.

var obj = { 'bar' : 'baz' }
var key = Object.keys(obj)[0];
var value = obj[key];
     
 console.log("key = ", key) // bar
 console.log("value = ", value) // baz
Object.keys() is javascript method which return an array of keys when using on objects.

Object.keys(obj) // ['bar']

이제 객체에 대해 반복할 수 있으며 아래와 같은 값에 액세스할 수 있습니다.

Object.keys(obj).forEach( function(key) {
  console.log(obj[key]) // baz
})

당신을 위한 하나의 라이너:

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
// 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"
}

MDN 참조

저도 같은 문제를 겪고 있었고 이것이 효과가 있었습니다.

//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[key];

개체의 키/값을 가져오는 가장 좋은 방법입니다.

let obj = {
        'key1': 'value1',
        'key2': 'value2',
        'key3': 'value3',
        'key4': 'value4'
    }
    Object.keys(obj).map(function(k){ 
    console.log("key with value: "+k +" = "+obj[k])    
    
    })
    

나는 다른 것을 볼 수 없습니다.for (var key in foo).

당신이 언급한 이후로$.each() 1jQuery 1.6+에서 .

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

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

가장 쉬운 방법은 Underscore.js:

열쇠들.

_.keys(object) 개체 속성의 모든 이름을 검색합니다.

_.keywordone : 1, 2: 2, 3: 3}; => ["하나", "둘", "셋"]

네, 여러분은 여분의 도서관이 필요하지만, 그것은 매우 쉽습니다!

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
}

참고: 사용할 수도 있습니다.

Object.key(foo);

다음과 같은 출력을 제공합니다.

[bar];

Object.keys() Object.keys() 메서드는 for...in 루프에서 제공하는 것과 같은 순서로 지정된 개체 자체 열거 가능한 속성의 배열을 반환합니다(차이점은 for-in 루프가 프로토타입 체인에서도 속성을 열거한다는 것입니다).

var arr1 = Object.keys(obj);

Object.values() Object.values() 메서드는 for...in 루프에서 제공하는 것과 같은 순서로 지정된 개체 자체의 열거 가능한 속성 값 배열을 반환합니다(차이점은 for-in 루프가 프로토타입 체인에서도 속성을 열거한다는 것입니다).

var arr2 = Object.values(obj);

더 자세한 내용은 여기로 가십시오.

이외에는 방법이 없습니다for ... in그것을 않다면 ( 테스트를 하는이 약간 일 것입니다.)hasOwnProperty각 반복에서?) 그런 다음 다른 구성을 사용합니다. 예를 들어, kvp의 배열:

[{ key: 'key', value: 'value'}, ...]

음.$.each반면에, 도서관 구조입니다.for ... in네이티브 JS입니다. 더 좋을 것입니다.

개체를 사용할 수 있습니다.다음과 같은 키를 가져오는 키 기능:

const tempObjects={foo:"bar"}

Object.keys(tempObjects).forEach(obj=>{
   console.log("Key->"+obj+ "value->"+tempObjects[obj]);
});

문자열로 표시하려면 다음을 사용합니다.

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

만약 당신이 AWS CloudFront Functions를 사용하고 있다면, 이것은 당신에게 도움이 될 것입니다.

function handler(event) {
    var response = event.response;
    var headers = response.headers;
    if("x-amz-meta-csp-hash" in headers){ 
        hash=headers["x-amz-meta-csp-hash"].value;
        console.log('hash is ' + hash);
    }
}

읽기 쉽고 간단한 솔루션:

const object1 = {
    first: 'I am first',
    second: 'I am second'
};

for (const [key, value] of Object.entries(object1)) {
    console.log(`${key}: ${value}`);
}

// expected output:
// "first: I am first"
// "second: I am second"

언급URL : https://stackoverflow.com/questions/6268679/how-to-get-the-key-of-a-key-value-javascript-object

반응형