如何删除json变量中的父字段,并在javascript或jquery中将其转换为json
How to remove parent fields in json variable and convert it to json in javascript or jquery
我正在做一个有很多对象参与的项目。我在javascript或jQuery中有以下要求。
我有以下对象:
var dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
如何删除父字段并使其成为如下对象?
var d= [
{ "id": 0, "name": "Housing", "value": 18 },
{ "id": 1, "name": "Travel", "value": 31.08 },
{ "id": 2, "name": "Restaurant", "value": 64 },
{ "id": 3, "name": "Bank", "value": 3 },
{ "id": 4, "name": "Movies", "value": 10 }
]
完成此操作后,我想将此对象传递给一个javascript函数,该函数处理此变量d的值。
if(value >= 10 && value <= 20) {
d[index].value = 7;
}
if(value >= 20 && value <= 40) {
d[index].value = 8;
}
更新后的对象应该看起来像:
var d= [
{ "id": 0, "name": "Housing", "value": 7 },
{ "id": 1, "name": "Travel", "value": 8 },
{ "id": 2, "name": "Restaurant", "value": 64 },
{ "id": 3, "name": "Bank", "value": 3 },
{ "id": 4, "name": "Movies", "value": 10 }
]
我尝试使用for循环来循环到数据集,但无法达到我的要求。
有什么帮助吗?
使用Array#forEach
和Object.keys()
迭代对象。
var dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
// Declare resulting empty array
var d = [];
// Get object keys and iterate over them
Object.keys(dataset).forEach(function (key) {
// Get the value from the object
var value = dataset[key].value;
// Update values if in the range
if(value >= 10 && value <= 20) {
dataset[key].value = 7;
} else if(value > 20 && value <= 40) {
dataset[key].value = 8;
}
// Push the updated(or not) value in the array
d.push(dataset[key]);
});
console.log(d);
document.getElementById('result').innerHTML = JSON.stringify(d, null, 4);
<pre id="result"></pre>
只需使用Array.prototype.map方法进行映射即可:
var dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
var d = Object.keys(dataset).map(function(key) {
var obj = dataset[key];
if (obj.value >= 10 && obj.value <= 20) {
obj.value = 7;
}
else if (obj.value >= 20 && obj.value <= 40) {
obj.value = 8;
}
return obj;
});
document.write('<pre>' + JSON.stringify(d, null, 4) + '</pre>');
您可以这样做:
var dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
首先删除字符串键:
var d = [];
for(var k in dataset){
d.push(dataset[k]);
}
然后迭代得到的数组,相应地修改它:
for(var k in d){
var value = d[k]['value'];
if(value>=10 && value<=20){
d[k].value=7;
}
if(value>=20 && value<=40){
d[k].value=8;
}
}
这提供了您要查找的结果:
var dataset = {
"d0": { "id": 0, "name": "Housing", "value": 18 },
"d1": { "id": 1, "name": "Travel", "value": 31.08 },
"d2": { "id": 2, "name": "Restaurant", "value": 64 },
"d3": { "id": 3, "name": "Bank", "value": 3 },
"d4": { "id": 4, "name": "Movies", "value": 10 }
};
var d = Object.keys(dataset).map(function(key) {
var v = dataset[key].value;
if (v >= 10 && v <= 20) dataset[key].value = 7;
else if (v > 20 && v <= 40) dataset[key].value = 8;
return dataset[key];
});
试试这个,
function datasetToArrOfObj(dataset){
var rslt = [];
for (var key in dataset) {
if (dataset.hasOwnProperty(key)) {
rslt.push(dataset[key]);
}
}
return rslt;
}
相关文章:
- 更改json/javascript对象var名称或从数字var中检索值
- XML字符串转换为JSON javascript
- ASP.NET WebApi DateTimeOffset 序列化为 Json/JavaScript (angular2
- 对 JSON JavaScript 中的值应用折扣
- 使用JSON/JavaScript将成员添加到Office 365组
- 格式不正确的json/javascript
- Json javascript parsing
- JSON JavaScript 未定义的变量问题
- 在 JSON/Javascript 中表示一天中的时间的首选方法
- XML 到 JSON JavaScript 函数不起作用
- loop through json javascript
- 在 Rails 中对 JSON/Javascript 解析的正确过程
- 在 JSON JavaScript 中查找和替换
- JSON / JavaScript 获取对象键
- 过滤嵌套的 JSON JavaScript
- 将不带属性的值附加到 json javascript
- JSON+Javascript/jQuery.如何从 json 文件导入数据并对其进行解析
- parse facebook json javascript
- 在嵌套的 json javascript 中显示数组的所有键值对
- 将两个 json/javascript 数组合并为一个数组