繁体   English   中英

Javascript 如何从数组 Object 中分别获取值和键?

[英]Javascript how to get value and key seperately from Array Object?

我有这种格式的 JS 数组,我想获取不同变量中的所有键,以及不同变量中的值。 这是我的代码。 我正在尝试获取不同变量中的键和值。

<script>
    var testVar = [ {ANUMBER: "new message"}, {ANUMBER: "new message number"},  {ANUMBER: "new message email "},{AMDL: "new message"}];

    for (var labelkey in testVar){
        if (errorsarr.hasOwnProperty(labelkey)) {
            var val = errorsarr[labelkey];
            //console.log(val);
            console.log(labelkey);    
        }           
    }
</script>

使用Object.entries() function,您会得到一个keyvalue对数组,您可以使用for... of循环对其进行循环。

 var testVar = {1: "first", 2: "second", 3: "third"} for (let [key, value] of Object.entries(testVar)){ console.log(key, value) }

首先,您需要两个循环来访问数组 object 的每个键,因为您的testVar是一个数组。 第一个循环遍历您的数组,第二个循环将遍历 object。

 var testVar = [ {ANUMBER: "new message"}, {ANUMBER: "new message number"}, {ANUMBER: "new message email "},{ANUMBER: "new message"}]; JSON.stringify(testVar); for( labelkey in testVar){ var value= testVar[labelkey]; for( key in value ){ console.log("Key="+key, "and value="+value[key]); } }

您可以使用Object.entries遍历每个元素并获取每个 object 的键和值。

 var testVar = [{ 1: "new message" }, { 2: "new message number" }, { 3: "new message email " }, { 4: "new message" }]; var keys = []; var values = []; testVar.forEach(e => { var [key, value] = Object.entries(e)[0]; keys.push(key) && values.push(value) }); console.log(keys) console.log(values)

或者

 var testVar = [{ 1: "new message" }, { 2: "new message number" }, { 3: "new message email " }, { 4: "new message" }]; var keys = testVar.map(e => Object.entries(e)[0][0]); var values = testVar.map(e => Object.entries(e)[0][1]); console.log(keys) console.log(values)

var testVar = [ {ANUMBER: "new message"}, {ANUMBER: "new message number"},  {ANUMBER: "new message email "},{AMDL: "new message"}];

ANUMBER_VALUE = [];
AMDL_VALUE = [];

for(var testvar of testVar){
    for (let [key, value] of Object.entries(testvar)){

        console.log("key: "+key)
        console.log("value: "+value)

        if(key == "ANUMBER"){
          ANUMBER_VALUE.push(value);
        }
        else{
          AMDL_VALUE.push(value);
        }
    }
}
console.log("ANUMBER_VALUE: "+ ANUMBER_VALUE)
console.log("AMDL_VALUE: "+ AMDL_VALUE)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM