根据对象长度对字符串数组进行分组
Grouping string array based on object length
var list=['abc','ab','a','c','bc','abcdef','cdf','opq']
output:-
var object={
['a','c'],
['ab','bc'],
['abc','cdf','opq'],
['abdcef']}
试试这个:
let list = ['abc', 'ab', 'a', 'c', 'bc', 'abcdef', 'cdf', 'opq'];
let temp = {};
list.map(function (item) {
!temp.hasOwnProperty(item.length) ? temp[item.length] = [item] : temp[item.length].push(item);
});
let output_dict = {'output': Object.values(temp)};
console.log(output_dict)
预期的输出是 incorrect.An 对象无法存储所需对象中所示的数据。您可以拥有数组数组或带有键值对的对象。
在下面的示例中,使用了数组 reduce 方法,并在回调内部检查了当前对象的长度,并创建了一个键,如 len1,len2,len3
,其中 1,2,3 ..
是当前值的长度.如果累加器对象包含名称为 len1
或 len2
等的键,则将当前值推送到与该键相关的数组。否则使用该名称创建一个新密钥并添加值
var list = ['abc', 'ab', 'a', 'c', 'bc', 'abcdef', 'cdf', 'opq']
let len = 'length';
let lengthObj = list.reduce((acc, curr) => {
const lengthKey = `len${curr.length}`
if (acc[lengthKey]) {
acc[lengthKey].push(curr)
} else {
acc[lengthKey] = [curr];
}
return acc;
}, {});
console.log(Object.values(lengthObj))
var list=['abc','ab','a','c','bc','abcdef','cdf','opq']
output:-
var object={
['a','c'],
['ab','bc'],
['abc','cdf','opq'],
['abdcef']}
试试这个:
let list = ['abc', 'ab', 'a', 'c', 'bc', 'abcdef', 'cdf', 'opq'];
let temp = {};
list.map(function (item) {
!temp.hasOwnProperty(item.length) ? temp[item.length] = [item] : temp[item.length].push(item);
});
let output_dict = {'output': Object.values(temp)};
console.log(output_dict)
预期的输出是 incorrect.An 对象无法存储所需对象中所示的数据。您可以拥有数组数组或带有键值对的对象。
在下面的示例中,使用了数组 reduce 方法,并在回调内部检查了当前对象的长度,并创建了一个键,如 len1,len2,len3
,其中 1,2,3 ..
是当前值的长度.如果累加器对象包含名称为 len1
或 len2
等的键,则将当前值推送到与该键相关的数组。否则使用该名称创建一个新密钥并添加值
var list = ['abc', 'ab', 'a', 'c', 'bc', 'abcdef', 'cdf', 'opq']
let len = 'length';
let lengthObj = list.reduce((acc, curr) => {
const lengthKey = `len${curr.length}`
if (acc[lengthKey]) {
acc[lengthKey].push(curr)
} else {
acc[lengthKey] = [curr];
}
return acc;
}, {});
console.log(Object.values(lengthObj))