将替换值存储到对象的另一个数组中

时间:2017-04-13 17:31:34

标签: javascript

我有一个对象,我循环使用for循环,循环遍历对象以找到键和值。

house: {
  john: {
       love_off: "mary"
  }
}

我的for循环返回:

 for ( var key in house.john) {
     house.john[key.replace("_off","") = house.john[key];
 }

它返回原始数组的副本,长度为:

house: {
      john: {
           love: "mary"
           love_off: "mary"
      }
    }

如何从对象中获取"love": "mary"并将其添加到需要返回的数组中?

4 个答案:

答案 0 :(得分:1)

您必须使用delete语句才能删除旧属性。

删除操作符从对象中删除属性。

var object={
  "house": {
     "john": {
       "love_off": "mary"
     }
  }
}
 for ( var key in object.house.john) {         
     object.house.john[key.replace("_off","")] = object.house.john[key];
     if(object.house.john.hasOwnProperty(key))
         delete object.house.john[key];
 }
console.log(object);

答案 1 :(得分:1)

如果正确解释问题,您可以使用JSON.stringify()JSON.parse() .replace()

data = JSON.parse(JSON.stringify(data).replace(/_off(?=":)/, ""));

答案 2 :(得分:0)

试试这个

var myArray= [] 
for ( var key in object.house.john) {         
     object.house.john[key.replace("_off","")] = object.house.john[key];
     delete object.house.john[key];
     myArray.push(object.house.john);
 }

答案 3 :(得分:0)

您可以使用Object.keys()使用Array.prototype.forEach()循环遍历所有对象键。

要进行替换,最重要的是删除旧密钥属性。

代码示例:

product.attr.code