使用javascript从对象数组中删除键值

时间:2014-03-08 07:51:17

标签: 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", ah:"ldkfldfjljKey", ab:"GMC", 
      ae:"1/2 Ton with plow", ag:"Mint Looks", aa:"Option1"
    }
  }
]

我需要删除user1post2user1post1

我尝试过使用类似的东西,但它不起作用:

  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.log("length is:" + values.length);

它表示长度为1,因此如果计数从零开始,那么这将是正确的。我可以设置一个从0迭代到i的for循环。

我不确定在数组中引用数据的语法或属性是什么。

2 个答案:

答案 0 :(得分:3)

你有一个包含单个对象的数组。该对象的键是您想要的数组。所以:

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);

http://jsfiddle.net/5xuLJ/

答案 1 :(得分:1)

这是你想要的吗?

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”等)?