如何用javascript推入数组?

时间:2019-06-19 04:11:29

标签: javascript html

我正在尝试添加到数组中。我不知道如何正确遍历和添加对象。

我有数据数组:

BasePermission

我希望这种效果如下:

const data = [
  {
    1: "Apple", 
    2: "Xiaomi"
   }
];

const list = [];

data.forEach(function(key, value) {
    console.log("key", key);
})

console.log(list)

4 个答案:

答案 0 :(得分:5)

您的预期输出无效。您可以首先使用Object.values()从对象中检索所有值。然后使用Array.prototype.map()在所需的结构中形成数组。

尝试以下方式:

const data = [
  {
    1: "Apple", 
    2: "Xiaomi"
   }
];
const list = Object.values(data[0]).map((el,i) => ({value: i+1, title: el})) ;
console.log(list);

您可以将对象的现有Object.entries()一起使用,如下所示:

const data = [
  {
    1: "Apple", 
    2: "Xiaomi"
   }
];
const list = Object.entries(data[0]).map(item => ({value: item[0], title: item[1]}));
console.log(list);

答案 1 :(得分:2)

您可以执行以下操作:

const data = ['Apple', 'Xiaomi'];

const result = data.map((item, index) => ({value: index, title: item}));

console.log(result);

答案 2 :(得分:2)

我将继续假设@AutoConfigureStubRunner(ids = {"com.example:http-server-dsl:+:stubs:8080"}) 是键/值对的对象,并且您希望将其转换为对象数组。

data

输出:


// Assuming you have an object with key/value pairs.
const data = {
  1: "Apple",
  2: "Xiaomi"
};

// Convert the data object into an array by iterating over data's keys.
const list = Object.keys(data).map((key) => {
  return {
    value: key,
    title: data[key]
  }
});

console.log(list)

如果您实际上需要[ { value: '1', title: 'Apple' }, { value: '2', title: 'Xiaomi' } ] 作为数字而不是字符串,则可以这样操作:

value

如果您可以使用更现代的JavaScript版本(ECMAScript 2017),则效果很好:

const list = Object.keys(data).map((key) => {
  return {
    value: Number(key),
    title: data[key]
  }
});

答案 3 :(得分:1)

如果想法是将键名转换为值,而这些键名不一定是自动递增的数字,则您可能需要查看Object.entries()

const data = {1: "Apple", 2: "Xiaomi"};

const res = Object.entries(data).map(entry => ({value: entry[0], title: entry[1]}));

console.log(res);