[英]How to convert array to array of objects?
我有
let array = ['mango', 'mango_shake','banana', 'banana_shake', 'cherry', 'cherry_shake', 'Strawberry', 'Strawberry_shake', ...n];
我想做的是:
let target = [{'fruit': 'mango', 'drink': 'mango_shake'},
{'fruit': 'banana', 'drink': 'banana_shake'}, ...n];
我该怎么做?
您可以简单地遍历数组并创建一个像这样的对象数组
let array = ['mango', 'mango_shake', 'banana', 'banana_shake', 'cherry', 'cherry_shake', 'Strawberry', 'Strawberry_shake']; var res = []; for (var i = 0; i < array.length; i = i + 2) { var ob = {}; ob.fruit = array[i]; ob.drink = array[i + 1]; res.push(ob); } console.log(res);
注意:这个答案假设水果和它对应的饮料在数组中总是彼此相邻。 如果项目乱序,这将给出错误的答案。
只需迭代您的原始数组,直到它为空并取出对并将它们映射到对象:
const result = [];
while(array.length)
result.push((([fruit, drink]) => ({fruit, drink}))(array.splice(0, 2));
(如果这是您的家庭作业:我认为向您的老师解释它是如何工作的会更难,而不仅仅是自己尝试:))
您可以遍历数组以组合其他所有项目
let target = {};
array.forEach( (curr, indx, arr) => {
if (indx %2 == 1) {
target[arr[indx-1]] = curr
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.