我想从动态键中获取json数组的键和值。意思是,我事先并不知道钥匙是什么。
这是函数得到的json的一个例子:
arr = [
{key1: 'val1'},
{key2: 'val2'},
{key3: 'val3'}
];
对我来说似乎很简单,但我无法获得每个项目的关键和价值。
这是我尝试过的(基于this pipe):
for (let key of arr) {
console.log ('key: ' + key + ', value: ' + arr[key]);
}
但我在日志中得到的内容如下:
key:[object Object], value: undefined
我的预期行为是获得以下内容:
key:key1, value:val1
我做错了什么?我如何获得密钥和值?
答案 0 :(得分:15)
在您的示例中,您有一个对象数组,并且每个对象都只有一个属性。
for (let obj of arr) {
console.log("object:", obj);
for (let key in obj) {
console.log(" key:", key, "value:", obj[key]);
}
}
您发布的以下代码
for (let key in arr) {
console.log ('key: ' + key + ', value: ' + arr[key]);
}
...可以在这样的数据结构上工作:
let arr = {
key1: 'val1',
key2: 'val2',
key3: 'val3'
};
答案 1 :(得分:2)
您需要另一个for循环来访问密钥和值,
for (let key of this.arr) {
for(var i in key){
console.log('key: ' + i + ', value: ' + key[i]);
}
}
检查 console
答案 2 :(得分:1)
如果您更担心指定
之类的对象var temp={'name':Dinesh,'age':18}
您可以使用以下语法。
console.log(Object.keys(temp)[0],Object.values(temp)[0]):
特别是零索引,因为对象的方法键和值都返回一个数组
答案 3 :(得分:0)
yourObject.forEach(function(value, index){
// do your job
console.log(value, index);
});
答案 4 :(得分:0)
您可以尝试这些
object = [
{
"id": 1,
"test": "test1",
"name": ["abc", "pqr"]
},
{
"id": 2,
"test": "test2",
"name": ["abc2", "pqr2"]
},
{
"id": 3,
"test": "test3",
"name": ["abc3", "pqr3"]
},
{
"id": 4,
"test": "test4",
"name": ["abc4", "pqr4"]
}]
和您的js或打字稿代码如下:-
YourMethod() {
for (let item of this.object) {
for (let i in item) {
if (typeof (item[i]) === 'object') {
item[i].forEach((e: any) => {
console.log("runseprate", e)
})
}
}
}}
答案 5 :(得分:0)
json = {payload.InsuredMobileNumber.type: "string"
payload.accidentTime.type: "string"
payload.causeOfLoss.type: "string"
payload.claimRegistrationDate.type: "string"
payload.emailAddress.type: "string"}
var keyData = Object.keys(json);
var valueData = Object.values(json)
console.log("keyData = ", keyData)
console.log("valueData = ", valueData)