[英]How to get values from JSON objects
如何使用javascript從JSON對象獲取值。 我可以獲取鍵(請參見小提琴),但無法獲取與鍵對應的值
我的代碼如下
var getKeys = function (arr) {
var key, keys = [];
for (i = 0; i < arr.length; i++) {
for (key in arr[i]) {
if (arr[i].hasOwnProperty(key)) {
keys.push(key);
}
}
}
alert(keys);
};
var a = [ { name: "Carrot", category: "Vegetable", healthiness: "Adequate" },
{ name: "Pork Shoulder", category: "Meat", healthiness: "Questionable" },
{ name: "Bubblegum", category: "Candy", healthiness: "Super High"} ]
getKeys(a);
我要console.log是{key:value}
只是。
https://jsfiddle.net/3woafcz7/1/
for (i=0; i<arr.length; i++) {
for (key in arr[i]) {
keys.push(key);
values.push(arr[i][key]); //that's the new
}
}
key
僅顯示屬性名稱,請使用如下的arr[i][key]
來獲取值:
keys.push(arr[i][key]);
你到底想要什么? 您想提醒鑰匙加上它的價值嗎?
var getKeys = function (arr) {
var key, keys = [];
for (i = 0; i < arr.length; i++) {
for (key in arr[i]) {
if (arr[i].hasOwnProperty(key)) {
keys.push(key +": "+ arr[i][key]);
}
}
}
alert(keys);
};
那應該做。
只需使用地圖功能
var a = [ { name: "Carrot", category: "Vegetable", healthiness: "Adequate" }, { name: "Pork Shoulder", category: "Meat", healthiness: "Questionable" }, { name: "Bubblegum", category: "Candy", healthiness: "Super High"} ] var names = a.map(function(obj){ return obj.name; }) var categorys = a.map(function(obj){ return obj.category; }) document.write('name===>'+names) document.write('<br>categorys==>'+categorys)
如果您要查找包含多個對象的數組,該數組是根據中的對象的鍵/值對創建a
,則可以做到這一點:
function getPairs(arr) {
return arr.reduce(function (p, c) {
for (var prop in c) {
var obj = {};
obj[prop] = c[prop];
p.push(obj);
}
return p;
}, []);
}
getPairs(a);
輸出值
[{"name":"Carrot"},{"category":"Vegetable"},{"healthiness":"Adequate"},{"name":"Pork Shoulder"},{"category":"Meat"},{"healthiness":"Questionable"},{"name":"Bubblegum"},{"category":"Candy"},{"healthiness":"Super High"}];
要獲取對象的鍵,可以使用:Object.keys(a);
var a = [ { name: "Carrot", category: "Vegetable", healthiness: "Adequate" },
{ name: "Pork Shoulder", category: "Meat", healthiness: "Questionable" },
{ name: "Bubblegum", category: "Candy", healthiness: "Super High"} ]
var b = { name: "SSSS", category: "VVVVV", healthiness: "AAAAA" };
// using generator (ES6 only)
Object.prototype.iter_values = function*(){
var keys = Object.keys(this);
for (var k=0;k < keys.length; k++) {
yield this[keys[k]];
};
};
function test_iter(o){
for (v of o.iter_values()){ // note the 'of' keyword
console.log(v);
}
};
// using array (ES5)
Object.prototype.values = function() {
var keys = Object.keys(this);
var values = [];
for (var k=0;k < keys.length; k++) {
values.push(this[keys[k]]);
};
return values;
};
function test_array(o){
console.log(o.values());
};
如果要循環使用值,請使用generator,否則array的詳細程度將降低。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.