使用javascript从对象数组中去除键值
我有一个数组,其中包含以下数据:使用javascript从对象数组中去除键值,javascript,arrays,object,Javascript,Arrays,Object,我有一个数组,其中包含以下数据: [ { user1post2: { ad:"Car", ac:39500, af:"4", ah:"klgjoirt3904d", ab:"Acura", ae:"2013 ACURA MDX 3.5L V6 AWD 6AT (294 HP)", ag:"Mint", aa:"Option2" }, user1post1: { ad:"Truck", ac:6799, af:"3"
[
{
user1post2: {
ad:"Car", ac:39500, af:"4", ah:"klgjoirt3904d", ab:"Acura",
ae:"2013 ACURA MDX 3.5L V6 AWD 6AT (294 HP)", ag:"Mint", aa:"Option2"
},
user1post1: {
ad:"Truck", ac:6799, af:"3", ah:"ldkfldfjljKey", ab:"GMC",
ae:"1/2 Ton with plow", ag:"Mint Looks", aa:"Option1"
}
}
]
我需要去掉user1post2和user1post1
我尝试过使用类似的方法,但不起作用:
var valu2 = values; //put current array into new variable `valu2`
console.log(valu2.toSource()); //Log to console to verify variable
var finalData = []; //Create new array
for (var name2 in valu2) {
finalData.push(valu2[name2]);
};
console.log(finalData.toSource());
如何去掉那些键值user1post2:
当我检查长度时
console.loglength为:+values.length
它表示长度为1,因此如果计数从零开始,则这是正确的。我可以设置一个从0到I的for循环
我不确定引用数组中数据的语法或属性是什么。您有一个数组,其中只有一个对象。该对象的键是您想要的数组。因此:
var val = [{ /*... your data ...*/ }];
var out = [];
var myBigObject = val[0];
for (var i in myBigObject) {
if (myBigObject.hasOwnProperty(i)) {
out.push(myBigObject[i]);
}
}
console.log(out);
您有一个数组,其中有一个对象。该对象的键是您想要的数组。因此:
var val = [{ /*... your data ...*/ }];
var out = [];
var myBigObject = val[0];
for (var i in myBigObject) {
if (myBigObject.hasOwnProperty(i)) {
out.push(myBigObject[i]);
}
}
console.log(out);
这是你想要的吗
values = [{
user1post2: {
ad: "Car",
ac: 39500,
af: "4",
ah: "klgjoirt3904d",
ab: "Acura",
ae: "2013 ACURA MDX 3.5L V6 AWD 6AT (294 HP)",
ag: "Mint",
aa: "Option2"
},
user1post1: {
ad: "Truck",
ac: 6799,
af: "3",
ah: "ldkfldfjljKey",
ab: "GMC",
ae: "1/2 Ton with plow",
ag: "Mint Looks",
aa: "Option1"
}
}]
out = [];
for(prop in values[0]) {
out.push(prop);
}
console.log(out);
或者您是在尝试迭代每个属性内的实际数据,即在user1post2上循环以获取ad:Car等值吗?这就是您想要的吗
values = [{
user1post2: {
ad: "Car",
ac: 39500,
af: "4",
ah: "klgjoirt3904d",
ab: "Acura",
ae: "2013 ACURA MDX 3.5L V6 AWD 6AT (294 HP)",
ag: "Mint",
aa: "Option2"
},
user1post1: {
ad: "Truck",
ac: 6799,
af: "3",
ah: "ldkfldfjljKey",
ab: "GMC",
ae: "1/2 Ton with plow",
ag: "Mint Looks",
aa: "Option1"
}
}]
out = [];
for(prop in values[0]) {
out.push(prop);
}
console.log(out);
或者您是在尝试迭代每个属性内的实际数据,即在user1post2上循环以获取ad:Car等值?您的思路是正确的,但值是一个对象数组,而不是对象本身。您需要在该数组上循环以删除嵌套。如果计数从0开始,长度为1,则数组中只有一个元素,即元素0。我想你想把它改成var valu2=values[0];要获取单个元素,即具有user1post2和user1post1属性的对象,您的思路是正确的,但值是一个对象数组,而不是对象本身。您需要在该数组上循环以删除嵌套。如果计数从0开始,长度为1,则数组中只有一个元素,即元素0。我想你想把它改成var valu2=values[0];要获取具有user1post2和user1post1属性的对象的单个元素,我尝试了您的解决方案,它给了我[user1post2,user1post1],而不是其他所有内容。我尝试了您的解决方案,它给了我[user1post2,user1post1],而不是其他所有内容。