js中 在数组中 怎么 把相同首字母的 放到一个新的数组里面
时间: 2024-04-15 15:27:25 浏览: 93
你可以使用 JavaScript 的数组方法 `reduce()` 和 `filter()` 来实现将相同首字母的元素放到新数组中的操作。下面是一个示例代码:
```javascript
const arr = ['apple', 'banana', 'avocado', 'blueberry', 'cherry', 'coconut'];
const result = arr.reduce((acc, curr) => {
const firstLetter = curr[0].toLowerCase(); // 获取单词的首字母并转为小写
if (!acc[firstLetter]) {
acc[firstLetter] = []; // 如果新数组中没有这个首字母的键,则创建一个空数组
}
acc[firstLetter].push(curr); // 将当前单词添加到对应首字母的数组中
return acc;
}, {});
const newArray = Object.values(result); // 提取新数组中的值
console.log(newArray);
```
这段代码会将原始数组 `arr` 中相同首字母的元素放到一个新的数组中,最后打印出新数组。注意,这段代码假设原始数组中的元素都是字符串类型。
相关问题
如果数组是对象 对象里面有个值 是shouzimu 怎么根据 数字里面每一个的 首字母 把shouzimu 相同的进行分类
如果数组中的元素是对象,并且对象中有一个键(例如`shouzimu`)存储着首字母的值,你可以使用相似的方法来根据首字母对对象进行分类。下面是一个示例代码:
```javascript
const arr = [
{ name: 'apple', shouzimu: 'a' },
{ name: 'banana', shouzimu: 'b' },
{ name: 'avocado', shouzimu: 'a' },
{ name: 'blueberry', shouzimu: 'b' },
{ name: 'cherry', shouzimu: 'c' },
{ name: 'coconut', shouzimu: 'c' }
];
const result = arr.reduce((acc, curr) => {
const firstLetter = curr.shouzimu.toLowerCase(); // 获取对象中 shouzimu 的首字母并转为小写
if (!acc[firstLetter]) {
acc[firstLetter] = []; // 如果新数组中没有这个首字母的键,则创建一个空数组
}
acc[firstLetter].push(curr); // 将当前对象添加到对应首字母的数组中
return acc;
}, {});
const newArray = Object.values(result); // 提取新数组中的值
console.log(newArray);
```
这段代码会根据对象中 `shouzimu` 的值,将具有相同首字母的对象进行分类并放入一个新的数组中。最后打印出新数组。请注意,这段代码假设对象中都有 `shouzimu` 这个键,并且其值为字符串类型。
const arr = [ { name: 'apple', shouzimu: 'a' }, { name: 'banana', shouzimu: 'b' }, { name: 'avocado', shouzimu: 'a' }, { name: 'blueberry', shouzimu: 'b' }, { name: 'cherry', shouzimu: 'c' }, { name: 'coconut', shouzimu: 'c' } ]; const result = arr.reduce((acc, curr) => { const firstLetter = curr.shouzimu.toLowerCase(); // 获取对象中 shouzimu 的首字母并转为小写 if (!acc[firstLetter]) { acc[firstLetter] = []; // 如果新数组中没有这个首字母的键,则创建一个空数组 } acc[firstLetter].push(curr); // 将当前对象添加到对应首字母的数组中 return acc; }, {}); const newArray = Object.values(result); // 提取新数组中的值 console.log(newArray); new Array能不能按照 abcdefghijklmnopqrstuvwxyz 的循序 放进去 使用js 的写法
JavaScript 中的普通数组(`new Array()`)是按照元素插入的顺序进行存储的,因此可以按照 `abcdefghijklmnopqrstuvwxyz` 的顺序将元素放入数组。
下面是使用 JavaScript 的写法来按照 `abcdefghijklmnopqrstuvwxyz` 的顺序将元素放入数组的示例:
```javascript
const arr = [
{ name: 'apple', shouzimu: 'a' },
{ name: 'banana', shouzimu: 'b' },
{ name: 'avocado', shouzimu: 'a' },
{ name: 'blueberry', shouzimu: 'b' },
{ name: 'cherry', shouzimu: 'c' },
{ name: 'coconut', shouzimu: 'c' }
];
const result = arr.reduce((acc, curr) => {
const firstLetter = curr.shouzimu.toLowerCase(); // 获取对象中 shouzimu 的首字母并转为小写
if (!acc[firstLetter]) {
acc[firstLetter] = []; // 如果新数组中没有这个首字母的键,则创建一个空数组
}
acc[firstLetter].push(curr); // 将当前对象添加到对应首字母的数组中
return acc;
}, {});
const newArray = [];
for (let letter of 'abcdefghijklmnopqrstuvwxyz') {
if (result[letter]) {
newArray.push(result[letter]);
}
}
console.log(newArray);
```
这段代码首先使用 `reduce` 方法将原始数组中的对象按照首字母进行分类,并存储在 `result` 对象中。然后,通过一个 `for...of` 循环,按照 `abcdefghijklmnopqrstuvwxyz` 的顺序遍历,并将对应首字母的数组从 `result` 对象中提取出来,并依次放入 `newArray` 数组中。最后,打印输出 `newArray`,即按照 `abcdefghijklmnopqrstuvwxyz` 的顺序存储了各个数组。
阅读全文
相关推荐














