Javascript:通过排序将对象转换为数组

标签 javascript

我需要将对象转换为多个数组,没有重复的键,如果有一个由“user_”或“city_”组成的键,则创建新数组。 前三个 props/key 总是相同的。

例如

const test = {
    "mainPoint": "user1",
    "create_Date": "2018-04-23 16:51:10",
    "delete_Date": "2018-04-23 16:50",
    "user_one": 4,
    "user_two": 4,
    "city_one": bs,
    "city_two": mi
}

对此:

['user1','2018-04-23 16:51:10','2018-04-23 16:50','user_one',4]
['user1','2018-04-23 16:51:10','2018-04-23 16:50','user_two',4]
['user1','2018-04-23 16:51:10','2018-04-23 16:50','city_one','bs']
['user1','2018-04-23 16:51:10','2018-04-23 16:50','city_two','mi']

这是我的代码

let tempArr = [];

for(let key in test){

  tempArr = [];

  if(key.indexOf("user_") !== -1 || key.indexOf("city_") !== -1){

    tempArr.push(test['mainPoint']);
    tempArr.push(test['create_Date']);
    tempArr.push(test['delete_Date']);
    tempArr.push(key);
    tempArr.push(test[key]);
  }
    console.log(tempParams);
}

感谢您的帮助!

最佳答案

您只是没有使用 tempParams 对每个数组进行分组

const test = {
  "mainPoint": "user1",
  "create_Date": "2018-04-23 16:51:10",
  "delete_Date": "2018-04-23 16:50",
  "user_one": 4,
  "user_two": 4,
  "city_one": "bs",
  "city_two": "mi"
};
let tempParams = [];

for (let key in test) {

  tempArr = [];

  if (key.indexOf("user_") !== -1 || key.indexOf("city_") !== -1) {

    tempArr.push(test['mainPoint']);
    tempArr.push(test['create_Date']);
    tempArr.push(test['delete_Date']);
    tempArr.push(key);
    tempArr.push(test[key]);
    tempParams.push(tempArr);
  }

}
console.log(JSON.stringify(tempParams));

关于Javascript:通过排序将对象转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49997604/

相关文章:

Javascript 正则表达式替换有时不起作用

javascript - Stickyfloat.js 到侧边栏

javascript - 将 Chart.js 中的两个数据集连接成一行

javascript - JavaScript 中的 Vimeo API GET 请求

javascript - 无法使用 watir webdriver 填充 iframe 中的只读文本框

javascript - 根据选择值添加/删除表行

javascript - onclick div 保存输入值

javascript - 带有 HTML5 表单验证问题的 SASS 隔离

javascript - SVG 矩形高度设置在 Firefox 和 Edge 上不起作用

javascript - Ionic 2(点击)触发两次 iOS 10.3.1