Javascript 如何对数组的元素进行分组
我有一个数组:Javascript 如何对数组的元素进行分组,javascript,Javascript,我有一个数组: var arr = ['User1','123456','User2','456789','User3','546544']; 如何获得这样的对象数组: var arr2 = [{name: 'User1', id: 123456},{name: 'User2', id: 456789}, {name: 'User3', id: 546544}]; 我试过这个: arr.forEach(function (item, i, arr) { arr2.pu
var arr = ['User1','123456','User2','456789','User3','546544'];
如何获得这样的对象数组:
var arr2 = [{name: 'User1', id: 123456},{name: 'User2', id: 456789}, {name: 'User3', id: 546544}];
我试过这个:
arr.forEach(function (item, i, arr) {
arr2.push(
{
name: arr[i],
id: arr[i + 2]
}
);
});
for循环可以在所有计算机的所有版本上工作,并具有能够直接跳过索引的附加优势,而forEach只能通过大量额外代码来完成这一点。而且forEach比for循环慢
var arr1=['User1','123456','User2','456789','User3','546544',arr2=[];
对于(vari=0;i console.log(arr2)
您的问题的解决方案如下:
var arr2 = [];
for (var i = 0; i < arr.length; i = i + 2) {
arr2.push({name : arr[i], id: arr[i + 1]})
}
var arr2=[];
对于(变量i=0;i
下次尝试显示试用代码时,您将以这种方式取得更大的进步。简单地说,您需要做两件事:
var arr=['User1','123456','User2','456789','User3','546544'];
var arrObj=[];
如果(arr.length%2==0)
对于(变量i=0;i console.log(arrObj)代码>查看代码中的注释
const arr=['User1','123456','User2','456789','User3','546544'];
//好的,那么您要做的是将信息分组并创建一个新对象
//您可以使用很多函数,在下面的示例中,我将使用
//Array.reduce
//我们称之为夫妻,两个值结合在一起,比如:
//用户1和123456
//用户2和456789
// ...
const ret=arr.reduce((tmp,x,xi)=>{
//对夫妇的第一个值不添加任何内容
//我们要忽略,用户1,用户2和用户3
如果(xi%2==0)返回tmp;
返回[
…tmp,
//在数组中添加新值
{
//名称是该对的第一个值
名称:arr[xi-1],,
//id是该对的第二个值
id:x,
},
];
}, []);
控制台日志(ret)代码>请访问,取查看和。做一些研究,搜索相关话题等;如果你被卡住了,发布你的尝试,注意输入和预期输出。看看地图和按钮-即使是一个简单的for循环也很有用。id:arr[i+1]
Er。。。不捕获名称。哦,你用了完全不同的方式<代码>:)
但是为什么不呢?也许应用程序需要这样一种格式<代码>:)
@mplungjan第二次投票是我的。您不需要将对象键用双引号括起来,因为…:D@Gr这是我的风格。我喜欢包装它们,使它们类似于有效的JSON<代码>:)@Praveen Kumar Purushothaman我明白,我只是在戳mplungjan:pArrrgh。这太复杂了,不可能把ES6强加于无忧者身上,一个被广泛评论的答案看起来很棒。乍一看,它看起来像一个只有代码块的低质量答案。所以我编辑了这个。希望没问题?@mplungjan ROFL,是的。@mplungjan是的,因为缩进不好的代码,没有任何空格,对noobs来说更容易理解。这肯定会让他们养成好习惯。。。这并不是因为代码紧凑,而是因为better@mplungjan格雷格说你的一句话对新手很难。。。这在某种程度上是正确的<代码>:)谢谢,我没问题,不知道为什么人们会投反对票,这是解决您问题的简单有效的方法,不需要200行。