结合javascript对象属性值和显示



嗨,我在javascript对象中遍历时遇到困难。如何获取scheme_name&两者的NAV,并将其存储在变量中,如"您有两个方案链接到您的帐户。scheme_name1 NAV值为"scheme_name2 NAV值是"等等。请向我解释它thanx

let data = [{
"CustomerID": 12345,
"NAV": "95.24059718",
"cost_of_purchase": 799900,
"folio_number": 10007060,
"id": 1,
"mutual_fund_house": "AXIS MUTUAL FUND",
"no_of_units": 15000,
"option": "GROWTH",
"plan": "REGULAR",
"resource_uri": "/api/v1/folio/1/",
"scheme_name": "AXIS LONG TERM EQUITY",
"value_of_units": "1428608.9580"
}, {
"CustomerID": 12345,
"NAV": "1053.31517400",
"cost_of_purchase": 1500000,
"folio_number": 5540000567,
"id": 2,
"mutual_fund_house": "SBI Mutual Fund",
"no_of_units": 2750,
"option": "DIVIDEND",
"plan": "DIRECT",
"resource_uri": "/api/v1/folio/2/",
"scheme_name": "SBI Magnum Multicap Fund",
"value_of_units": "2896616.7270"
}]

看起来您试图将该对象映射到另一个对象。

首先,试着阅读和理解数组的方法,你可以查看:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

对于地图方法,您可以查看:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

作为一个具体的答案,你可以做:

const mappedData = data.map(function(item) {
return {
scheme_name: item.scheme_name,
NAV: item.NAV
};
});

这将返回一个简化版本的数组。

之后,您可以将其转换为字符串,如:

let solution = `You have ${mappedData.length} schemes linked to your account. `;
mappedData.forEach(function(mapped) {
solution += mapped.scheme_name + ' is ' + mapped.NAV + ' '
});

注意:我展示了map方法,它可以让你深入了解你可以做什么,通常你不需要简化,你可以直接用于每个版本。

将您的每个对象(在本例中,您提供了两(2(个(想象为数组内部的关联数组。这意味着你可以通过它的键来引用它,而不是通过它的索引位置来引用它。

这意味着要访问对象1,必须写入数据[0]。但如果您对此发出警报,这只会告诉您data[0]是一个对象。是的。

要访问该数组中的实际值,您必须提供密钥,这可以通过提供数字来实现,或者在您的情况下,可能更容易的是,它的关联密钥,即"scheme_name"。

参见以下内容:

let data = [{
"CustomerID": 12345,
"NAV": "95.24059718",
"cost_of_purchase": 799900,
"folio_number": 10007060,
"id": 1,
"mutual_fund_house": "AXIS MUTUAL FUND",
"no_of_units": 15000,
"option": "GROWTH",
"plan": "REGULAR",
"resource_uri": "/api/v1/folio/1/",
"scheme_name": "AXIS LONG TERM EQUITY",
"value_of_units": "1428608.9580"
}, {
"CustomerID": 12345,
"NAV": "1053.31517400",
"cost_of_purchase": 1500000,
"folio_number": 5540000567,
"id": 2,
"mutual_fund_house": "SBI Mutual Fund",
"no_of_units": 2750,
"option": "DIVIDEND",
"plan": "DIRECT",
"resource_uri": "/api/v1/folio/2/",
"scheme_name": "SBI Magnum Multicap Fund",
"value_of_units": "2896616.7270"
}]
for (let i = 0; i < data.length; i++) {
alert(data[i]["scheme_name"]);
}

所以很简单,对于i=0,i小于数组命名数据中关联数组的数量,通过关联键提醒该索引数组上的值。

您有一个data数组,因此首先需要遍历该数组。

选择每个记录要保留的属性,并将它们保存到results数组中。

一旦你有了结果,你就可以迭代它们并打印出你的个人记录。

let data = [{"CustomerID":12345,"NAV":"95.24059718","cost_of_purchase":799900,"folio_number":10007060,"id":1,"mutual_fund_house":"AXIS MUTUAL FUND","no_of_units":15000,"option":"GROWTH","plan":"REGULAR","resource_uri":"/api/v1/folio/1/","scheme_name":"AXIS LONG TERM EQUITY","value_of_units":"1428608.9580"},{"CustomerID":12345,"NAV":"1053.31517400","cost_of_purchase":1500000,"folio_number":5540000567,"id":2,"mutual_fund_house":"SBI Mutual Fund","no_of_units":2750,"option":"DIVIDEND","plan":"DIRECT","resource_uri":"/api/v1/folio/2/","scheme_name":"SBI Magnum Multicap Fund","value_of_units":"2896616.7270"}]
let results = []
data.forEach(datum => {
results.push({
scheme_name: datum.scheme_name,
nav: datum.NAV,
})
})
console.log(`You've got ${results.length} items in your account.`)
results.forEach(result => {
console.log(`${result.scheme_name} - NAV value is: ${result.nav}`)
})

我为您创建了样品小提琴。您需要对主对象中的每个对象进行迭代,并将所有信息存储在外部。

data.forEach(function(item) {
console.log(item.scheme_name);
});

最新更新