相关疑难解决方法(0)

在JavaScript中合并/展平数组数组?

我有一个JavaScript数组,如:

[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]
Run Code Online (Sandbox Code Playgroud)

我将如何将单独的内部数组合并为:

["$6", "$12", "$25", ...]
Run Code Online (Sandbox Code Playgroud)

javascript arrays flatten

1001
推荐指数
36
解决办法
61万
查看次数

过滤后将数组合并为一个数组

我有对象数组,我只取位置数组。我的目标是将这些位置数组合并为一个数组,但是我没有这样做并得到空数组。这就是我的做法:

let results = [{
    id: '1',
    locations: ['aaaa', 'bbbbbb', 'cccccc']
  },
  {
    id: '2',
    locations: []
  },
  {
    id: '3',
    locations: ['ddd', 'aaadsad', 'sefd']
  },
  {
    id: '4',
    locations: ['ffff', 'eeee', 'sfdsfsd']
  },
];
const locationIds = [].concat.apply([], ...results.filter(s => s.locations && s.locations.length > 0).map(({
  locations
}) => ({
  locations
})));

console.log(locationIds);
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?结果应该是 ['aaaa', 'bbbbbb', 'cccccc', 'ddd', 'aaadsad', 'sefd', 'ffff', 'eeee', 'sfdsfsd'];

javascript arrays typescript

13
推荐指数
3
解决办法
199
查看次数

从ES6 map()函数返回多个值

说我有这样的事情:

let values = [1,2,3,4]; 

let newValues = values.map((v) => {
  return v *v ; 
}); 

console.log(newValues); //[1,4,9,16]
Run Code Online (Sandbox Code Playgroud)

挺直的.

现在,如果我想为每个对象返回多个值,该怎么办?

例如.

let values = [1,2,3,4]; 

let newValues = values.map((v) => {
  return [v *v, v*v*v, v+1] ; 
}); 

console.log(newValues); //This is what I want to get 
                        //[1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5]
Run Code Online (Sandbox Code Playgroud)

我可以使用reduce函数

let values = [1,2,3,4]; 

let newValues = values.map((v) => {
  return [v *v, v*v*v,v+1] ;
}).reduce((a, c) => {

  return a.concat(c); …
Run Code Online (Sandbox Code Playgroud)

collections ecmascript-6 flatmap

6
推荐指数
3
解决办法
1万
查看次数

如何编写此递归函数以查找对象的最大深度?

我正在尝试编写一个函数,它将遍历我的对象并返回对象的级别深度.

例如,如果我在此对象上运行该函数:

var test = {
  name: 'item 1',
  children: [{
    name: 'level 1 item',
    children: [{
      name: 'level 2 item'
    },
    {
      name: 'second level 2 item',
      children: [{
        name: 'level 3 item'
      }]
    }]
  }]
}

var depth = myFunction(test); // Would return 2 (0 index based) as the collection goes 3 levels deep
Run Code Online (Sandbox Code Playgroud)

我一直在尝试编写一个确定最大深度的递归函数,但到目前为止我无法做到正确.这是我到目前为止:https://jsfiddle.net/6cc6kdaw/2/

似乎返回的值是每个节点命中的计数,而不是唯一级别.我明白我哪里出错了(从某种意义上说我没有过滤掉它)但是我已经盯着代码这么久以至于没有任何意义了!

有谁能够指出我哪里出错了?谢谢

javascript recursion

2
推荐指数
4
解决办法
866
查看次数