我正在尝试添加到数组中。我不知道如何正确遍历和添加对象。
我有数据数组:
BasePermission
我希望这种效果如下:
const data = [
{
1: "Apple",
2: "Xiaomi"
}
];
const list = [];
data.forEach(function(key, value) {
console.log("key", key);
})
console.log(list)
答案 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);