- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有以下锯齿状数组
var data = [
['a','b','c'],
['d','e',['f','g']],
['h','i','j']
];
我希望能够删除“f”,以便结果看起来像
var data1 = [
['a','b','c'],
['d','e',['g']],
['h','i','j']
];
同样,我想在上面的数组中的“h”后面添加“f”来给我
var data2 = [
['a','b','c'],
['d','e',['g']],
['h','f','i','j']
];
如何在 javascript 或 ES6 中实现此目的?请注意,我的锯齿状数组可以是多级深度,以上仅作为示例。
所以我需要像这样的功能data.remove('f')
结果为 data1data1.addafter('h','f')
结果为 data2
我尝试了如下的递归函数,但无法破解它......
function arrmap([head, ...tail], fn) {
return tail.length === 0 ? [fn(head)] : [fn(head), ...map(tail, fn)];
}
最佳答案
您需要映射和过滤器的递归组合。在这种情况下,我只会使用带有 for...of
循环的递归函数:
const fn = arr => {
const r = []
for(const item of arr) {
if(Array.isArray(item)) r.push(fn(item))
else if(item === 'h') r.push('h', 'f')
else if(item !== 'f') r.push(item)
}
return r;
}
const data = [['a','b','c'],['d','e',['f','g']],['h','i','j']]
const result = fn(data)
console.log(result)
如果您需要更通用的方法,您可以提取fn
:
const nestedMap = (arr, fn) =>
arr.reduce((r, item) => {
const val = Array.isArray(item) ? [nestedMap(item, fn)] : fn(item)
return val !== undefined ? r.concat(val) : r
}, [])
const data = [['a','b','c'],['d','e',['f','g']],['h','i','j']]
const result = nestedMap(data, item => {
if (item === 'h') return ['h', 'f']
if (item !== 'f') return item
})
console.log(result)
关于javascript - 如何使用 ES6 在 javascript 中删除或添加项目到锯齿状数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57171698/
使用Cocos2d画一个更粗的圆: glLineWidth(20); ccDrawCircle(self.ripplePosition, _radius, 0, 50, NO); 但这就是显示的内容(
本学期我在计算机科学类(class)中遇到了一个挑战问题,这是上学期的复习题,但问题是:“给定一个参差不齐的数组,查找数组中是否有任何行的乘积为 48,如果是,则返回该行号。如果没有行包含 48 的乘
我一直在尝试将 sklearn 决策树中的 .dot 图插入到 pyplot 子图中,并且一直在努力做到这一点。 pygraphviz 库拒绝在我的 Windows 系统上工作,因此我使用以下方法插入
我有一个 UITableViewCell 子类,它有一些标签。所有这些标签都带有模糊或锯齿状的文本。它在设备上比在模拟器上更引人注目。 这是一个看起来很正常的标签: 这是一个看起来很糟糕的标签: 我该
作为LINQ-to-Entities投影的结果,我最终得到一个List,如果手动创建它,其外观如下所示: List data = new List(); data.Add(new ChartDataR
为什么我的css圈不流畅? 如果我做一个 HTML5 Canvas 真的很棒。 #circle { width: 100px; height: 100px;
我不明白 Numpy.arrays 相乘时会发生什么。 例如,带有锯齿状(或参差不齐)的数组 import numpy as np a = np.array([[1,2,3],[100,200]])
我正在尝试用 Python 计算时间序列的 Hurst 指数,该值决定了量化金融时间序列的一些均值回归特征。我采用了任意长度的时间序列,并选择将其拆分为数据 block ,该过程是计算 Hurst 指
我正在建立一个网站 - http://www.efficaxdevelopment.com 正如您在加载页面(在 IE 中)时看到的那样,页面上不是图像的文本或菜单看起来很糟糕,而在 FF 和 Chr
If you check, for instance, this shopping page ,您可以看到价格倾斜了几度。在 Chrome 上,这看起来“恰到好处”,在 Firefox 上,这看起来非
我是一名优秀的程序员,十分优秀!