Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从对象数组中去除键值_Javascript_Arrays_Object - Fatal编程技术网

使用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],而不是其他所有内容。