Javascript 객체의 첫 번째 속성에 액세스하는 방법은 무엇입니까?
물건의 첫 번째 특성에 접근할 수 있는 우아한 방법은 없을까?
- 부동산의 이름을 모르는 경우
- 를 .
for .. in
의 "jQuery$.each
를 들어, 저는 를 for for for이에 for for for for for for for for for for for for for for for for for에 접속해야 합니다.foo1
foo1의 :
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'
Object.values(obj)[0]; // returns 'someVal'
이를 통해 인덱스별로 다른 속성에 액세스할 수도 있습니다.★★★★★★★★★★★★★★★★★★!Object.keys
★★★★★★★★★★★★★★★★★」Object.values
ECMAScript에 따라 반품 순서는 보장되지 않지만 모든 주요 브라우저 구현에 의해 비공식적으로 보증됩니다.자세한 내용은 https://stackoverflow.com/a/23202095를 참조해 주십시오.
첫 번째 반복 후 루프를 시도하고 중단합니다.
for (var prop in object) {
// object[prop]
break;
}
도 할 수 있어요.Object.values(example)[0]
.
Object.keys
개체의 속성 배열을 가져옵니다.§:
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
var keys = Object.keys(example); // => ["foo1", "foo2", "foo3"] (Note: the order here is not reliable)
문서 및 크로스 브라우저 심은 여기에 기재되어 있습니다.그 사용 예는 여기 있는 다른 답변에서 찾을 수 있습니다.
편집: 알기 쉽게 하기 위해 다른 답변에서 올바르게 기술된 내용을 반영하고 싶습니다. JavaScript 객체의 키 순서가 정의되어 있지 않습니다.
Object.values()를 사용하여 오브젝트 값에 액세스할 수 있습니다.
var obj = { first: 'someVal' };
Object.values(obj)[0]; // someVal
"첫 번째" 자산은 없습니다.개체 키의 순서가 잘못되었습니다.
를 사용하여 루프 오버를 ,(var foo in bar)
어떤 순서로 취득할 수 있습니다만, 향후(특히, 다른 키를 추가 또는 삭제했을 경우) 변경될 수 있습니다.
원라이너 버전:
var val = example[function() { for (var k in example) return k }()];
상위 답변은 전체 어레이를 생성한 다음 목록에서 캡처할 수 있습니다.여기 또 다른 효과적인 지름길이 있습니다.
var obj = { first: 'someVal' };
Object.entries(obj)[0][1] // someVal
Lodash 라이브러리를 사용한 솔루션:
_.find(example) // => {name: "foo1"}
그러나 객체 속성 내부 스토리지 주문은 Javascript VM 구현에 따라 다르기 때문에 보장되지 않습니다.
첫 번째 키를 보다 깔끔하게 입수할 수 있는 방법은 다음과 같습니다.
var object = {
foo1: 'value of the first property "foo1"',
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
let [firstKey] = Object.keys(object)
console.log(firstKey)
console.log(object[firstKey])
어레이 파괴를 선호한다면
const [firstKey] = Object.keys(object);
아니요. MDN에서 정의된 객체 리터럴은 다음과 같습니다.
개체의 속성 이름 및 관련 값 쌍이 0개 이상이고, 중괄호({})로 묶인 목록입니다.
, 또는 수 .for
를 in
키워드를 지정합니다.
사용할 수 있는 개체의 첫 번째 키 이름을 가져오려면:
var obj = { first: 'someVal' };
Object.keys(obj)[0]; //returns 'first'
문자열을 반환하여 다음과 같은 항목이 있는 경우 중첩된 개체에 액세스할 수 없습니다.
var obj = { first: { someVal : { id : 1} };
아이디입니다.
실제 객체를 가져오려면 다음과 같은 lodash를 사용하는 것이 가장 좋습니다.
obj[_.first(_.keys(obj))].id
첫 번째 키 값을 반환하려면(첫 번째 키 이름을 정확히 모르는 경우)
var obj = { first: 'someVal' };
obj[Object.keys(obj)[0]]; //returns 'someVal'
키 이름만 알고 있는 경우 다음을 사용합니다.
obj.first
또는
obj['first']
이것은 이전에 여기에서 다룬 적이 있습니다.
first의 개념은 오브젝트 속성에는 적용되지 않으며, for...in 루프의 순서는 사양상 보장되지 않지만, 실제로는 크롬(버그 리포트)을 제외하고 신뢰할 수 있는 FIFO입니다.그에 따라 결정을 내리세요.
오브젝트 사용을 권장하지 않습니다.오래된 IE 버전에서는 지원되지 않기 때문에 키를 누릅니다.그러나 꼭 필요한 경우 위의 코드를 사용하여 백 호환성을 보장할 수 있습니다.
if (!Object.keys) {
Object.keys = (function () {
var hasOwnProperty = Object.prototype.hasOwnProperty,
hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'),
dontEnums = [
'toString',
'toLocaleString',
'valueOf',
'hasOwnProperty',
'isPrototypeOf',
'propertyIsEnumerable',
'constructor'
],
dontEnumsLength = dontEnums.length;
return function (obj) {
if (typeof obj !== 'object' && typeof obj !== 'function' || obj === null) throw new TypeError('Object.keys called on non-object');
var result = [];
for (var prop in obj) {
if (hasOwnProperty.call(obj, prop)) result.push(prop);
}
if (hasDontEnumBug) {
for (var i=0; i < dontEnumsLength; i++) {
if (hasOwnProperty.call(obj, dontEnums[i])) result.push(dontEnums[i]);
}
}
return result;
}})()};
기능: Firefox (Gecko) 4 (2.0) Chrome 5 Internet Explorer 9 Opera 12 Safari 5
상세정보 : https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Object/keys
그러나 첫 번째 솔루션만 필요한 경우 다음과 같은 짧은 솔루션을 준비할 수 있습니다.
var data = {"key1":"123","key2":"456"};
var first = {};
for(key in data){
if(data.hasOwnProperty(key)){
first.key = key;
first.content = data[key];
break;
}
}
console.log(first); // {key:"key",content:"123"}
"개체의 첫 번째 속성"에 액세스해야 하는 경우 논리에 문제가 있을 수 있습니다.개체의 속성 순서는 중요하지 않습니다.
을 보다 할 수 있는 를 걸지 실시할 수 있습니다.Object.keys()
★★★★★★★★★★★★★★★★★」Object.values()
그러면 배열이 반환됩니다.
Object.prototype.firstKey = function () {
for (const k in this) {
if (Object.prototype.hasOwnProperty.call(this, k)) return k;
}
return null;
};
그런 다음 다음과 같이 사용할 수 있습니다.
const obj = {a: 1, b: 2, c: 3}
console.log(obj.firstKey()) //=> 'a'
반드시 첫 번째 키가 반환되는 것은 아닙니다.「 (…in…」루프의 요소 순서를 참조해 주세요.
이 방법으로도 할 수 있습니다.
var example = {
foo1: { /* stuff1 */},
foo2: { /* stuff2 */},
foo3: { /* stuff3 */}
};
Object.entries(example)[0][1];
이것은 오래된 질문이지만 대부분의 솔루션에서는 사용자가 업로드할 수 있는 파일이나 유사한 케이스에서 데이터를 시각화하는 경우 등 속성의 이름을 알고 있다고 가정합니다.
이것은 내가 사용하는 간단한 함수이며 변수를 알고 있는 경우 두 경우 모두 작동하며, 그렇지 않은 경우 개체의 첫 번째 속성(알파벳 순으로 정렬됨)이 반환됩니다.
label
d
해서 뽑습니다.key
아트리뷰트
const data = [
{ label: "A", value: 10 },
{ label: "B", value: 15 },
{ label: "C", value: 20 },
{ label: "D", value: 25 },
{ label: "E", value: 30 }
]
const keys = ['label', 0, '', null, undefined]
const label = (d, k) => k ? d[k] : Object.values(d)[0]
data.forEach(d => {
console.log(`first: ${label(d)}, label: ${label(d, keys[0])}`)
})
keys.forEach(k => {
console.log(`label of ${k}: ${label(data[0], k)}`)
})
다음과 같은 가치의 경우0
,''
,null
, , , , 입니다.undefined
는 배열의 첫 번째 요소를 반환합니다.
이것이 나의 해결책이다.
const dataToSend = {email:'king@gmail.com',password:'12345'};
const formData = new FormData();
for (let i = 0; i < Object.keys(dataToSend).length; i++) {
formData.append(Object.keys(dataToSend)[i],
Object.values(dataToSend)[i]);
}
console.log(formData);
이걸 하지 않을 이유가 있나요?
> example.map(x => x.name);
(3) ["foo1", "foo2", "foo3"]
키 값을 적절하게 반복하는 기본 구문
const object1 = {
a: 'somestring',
b: 42
};
for (const [key, value] of Object.entries(object1)) {
console.log(`${key}: ${value}`);
}
// expected output:
// "a: somestring"
// "b: 42"
다른 사람들이 지적한 것처럼, 만약 속성의 순서가 중요하다면, 그것들을 물건에 저장하는 것은 좋은 생각이 아니다.대신 대괄호로 묶은 배열을 사용해야 합니다.예.,
var example = [ {/* stuff1 */}, { /* stuff2 */}, { /* stuff3 */}];
var first = example[0];
'foo' 식별자는 손실됩니다.그러나 포함된 개체에 이름 속성을 추가할 수 있습니다.
var example = [
{name: 'foo1', /* stuff1 */},
{name: 'foo2', /* stuff2 */},
{name: 'foo3', /* stuff3 */}
];
var whatWasFirst = example[0].name;
'어떤 패턴에 맞는 하나 이상의 속성을 찾는 방법'과 같은 질문에 대한 답을 찾는 사람에게는Object.keys()
. 베네카스타의 답변을 확장하려면:
for (const propName of Object.keys(example)) {
if (propName.startsWith('foo')) {
console.log(`Found propName ${propName} with value ${example[propName]}`);
break;
}
}
언급URL : https://stackoverflow.com/questions/983267/how-to-access-the-first-property-of-a-javascript-object
'programing' 카테고리의 다른 글
PHP CURL OPT_SSL_VERIFYPEER 무시 (0) | 2023.01.05 |
---|---|
MySQL - 열의 문자 바꾸기 (0) | 2023.01.05 |
값별 배열 복사 (0) | 2023.01.05 |
문자열에서 판다 데이터 프레임 생성 (0) | 2023.01.05 |
PHP YAML 파서 (0) | 2023.01.05 |