javascript - 如何从数组中的数据创建对象中的键?
问题描述
如何从数组中的数据创建对象中的键?
function createIt(data) {
var obj = {};
for (i of data) {
obj["fruit"] = i;
}
return [obj];
}
var list = ["orange", "apple", "pineapple"];
console.log(createIt(list));
obj.fruit
只显示一个值,我想创建这样的东西:
[
{ fruit: "orange" },
{ fruit: "apple" },
{ fruit: "pineapple" }
]
解决方案
映射输入数组并返回带有key
水果的对象数组
var list = ["orange", "apple", "pineapple"];
console.log(list.map(i => ({ fruit: i })));
这里的 for 循环返回一个新数组,即使我不知道你为什么不想使用map
数组方法:
const list = ["orange", "apple", "banana"];
const newList = [];
for (let i = 0; i < list.length; i++) {
newList.push({
fruit: list[i]
});
}
console.log(newList);
这里是一个改变输入数组的 for 循环,即使再一次,也不知道为什么不能使用map
数组方法:
const list = ['orange', 'banana', 'apple'];
for (let i = 0; i < list.length; i++) {
list.splice(i, 1, {
fruit: list[i]
});
}
console.log(list);
回到你原来的代码:
function createIt(data){
var obj = {};
for(i of data){
obj["fruit"]= i
}
return [obj]
}
var list = ["orange", "apple", "pineapple"];
console.log(createIt(list))
您确实创建了一个对象,并且始终覆盖fruit
键的值。您应该创建一个数组,将对象推入循环中的数组中,然后返回该数组,如下所示:
function createIt(data) {
var objs = [];
for (i of data) {
objs.push({fruit: i});
}
return objs;
}
var list = ["orange", "apple", "pineapple"];
console.log(createIt(list))
推荐阅读
- javascript - 如何使用 Electron.js 应用程序中的 ffplay?
- ios - 应用程序可以调整由扩展所做的 Core Data 更改吗?
- database - Cassandra 建模问题
- javascript - 无法读取 XML 字符串
- cordova - Cordova 应用程序未显示平铺层
- css - 如何从引导程序的下拉菜单中删除边框空间
- ruby-on-rails - 在rails上使用ruby的systemStackError
- java - 将图像保存到内部存储的更快方法
- linux - 检查是否在 BIOS/UEFI 中启用了 VT-D / IOMMU
- java - Java Spring - 启动 ApplicationContext 时出错。创建名为“entityManagerFactory”的bean时出错