关于如何将JavaScript 数组拆分为 chunks有一个很好的问题。我目前正在将它用于我正在编写的一些统计方法,我使用的答案如下(尽管我选择不像他们在答案中那样扩展 Array 原型):
var chunk = function(array, chunkSize) {
return [].concat.apply([],
array.map(function(elem,i) {
return i%chunkSize ? [] : [array.slice(i,i+chunkSize)];
})
);
};
Run Code Online (Sandbox Code Playgroud)
这需要一个数组,例如[1,2,3,4,5,6],并给定 a chunkSizeof 2 返回[[1,2],[3,4],[5,6]]。我很好奇如何修改它以创建一组“重叠”块(或者对于那些熟悉诸如移动平均线、“移动子组”等方法的人)。
提供与上述相同的数组和chunkSize3,它将返回[[1,2,3],[2,3,4],[3,4,5],[4,5,6]]. A chunkSizeof 2 将返回[[1,2],[2,3],[3,4],[4,5],[5,6]]。
关于如何解决这个问题的任何想法?
从Cloud Firestore删除许多(不是全部)文档的最佳方法是什么?
官方文档包含有关删除一个文档和所有文档的信息:https://firebase.google.com/docs/firestore/manage-data/delete-data.
我有这样的DynamoDB表结构
A B C D
1 id1 foo hi
1 id2 var hello
Run Code Online (Sandbox Code Playgroud)
A是分区键,B是排序键。
假设我只有分区键,不知道排序键,我想删除所有具有相同分区键的条目。
因此,我正在考虑通过查询以固定大小(例如1000)加载条目,并批量删除它们,直到DynamoDB中不再有带有分区键的条目为止。
是否可以删除条目而不先加载它们?
我有一个数组
let arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];
Run Code Online (Sandbox Code Playgroud)
我想将其分组为一组 n 数组,以便 result[0] 中的前 n 个元素,以及 result[1] 中的后 n 个元素,如果剩余任何元素,则将其丢弃。
let sampleOutput = [[0, 1, 2, 3, 4, 5, 6], [7, 8, 9, 10, 11, 12, 13]] for n = 7;
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
function group5(arr, len) {
let result = [];
let loop=parseInt(arr.length/len)
for (let i=0; i<arr.length; i+=len) {
let x = []; let limitReached = false;
for (let j=0; j<len; …Run Code Online (Sandbox Code Playgroud) 我有一串用逗号分隔的数值,我想将它们包括在一个数组中,而且每对它们都是嵌套在主数组内的一个数组,作为我的图形顶点。
我该如何解决这个问题?
var vertices = "24,13,47,20,33,9,68,18,99,14,150,33,33,33,34,15,91,10";
Run Code Online (Sandbox Code Playgroud)
我希望他们成为的是:
var V_array = [[24,13],[47,20],[33,9],[68,18],[99,14],[150,33],[33,33],[34,15],[91,10]];
Run Code Online (Sandbox Code Playgroud) 我有这个:
products = [
{
'id': 1
'name: 'test'
},
{
'id': 2
'name: 'test'
},
{
'id': 3
'name: 'test'
}
... etc, etc
]
Run Code Online (Sandbox Code Playgroud)
我需要将其重组为:
products = [
row1: [
{
'id': 1
'name: 'test'
},
{
'id': 2
'name: 'test'
},
{
'id': 3
'name: 'test'
},
{
'id': 4
'name: 'test'
}
]
row2: [
{
'id': 5
'name: 'test'
},
{
'id': 6
'name: 'test'
},
{
'id': 7
'name: 'test'
},
{
'id': 8 …Run Code Online (Sandbox Code Playgroud) 我尝试了几种方法,但没有得到预期的结果。
假设我有这样的对象数组:
var users = [
{ 'user': 'barney', 'age': 36, 'active': false },
{ 'user': 'fred', 'age': 40, 'active': true },
... and so on (n lenght) ...
];
Run Code Online (Sandbox Code Playgroud)
我想把他们分成两到三组。如果我有 100 个对象,并且我希望将它们分为 3 组,那么第一组和第二组的结果应包含 33 个对象,最后一组应包含 34 个对象(或剩余对象分布的任何其他最佳可能方式)。
我尝试使用 lodash 的 chunk,但效果完全不同:)
console.log(_.chunk(users, 2)) // this will create 50 chunks of 2 objects
Run Code Online (Sandbox Code Playgroud)
编辑我的问题以解释更多信息。
var my arrayOfObj = [1,2,3,4,5,6,7,8,9,10]
myArray.dividThemIn(3) // when run this, I am getting chunks like below
[{1,2,3}, {4,5,6}, {7,8,9}, {10}] // I am finding code …Run Code Online (Sandbox Code Playgroud) 我有一个数组中的一长串项目。这些需要在一个组件中呈现,这应该很好而且很花哨。但是,我需要在每 3 个项目中由另一个组件包装这些。
所以,如果我只是渲染项目,它看起来像这样:
return (
<div>
items.map((x, index) => {
<span key={index}>{x}</span>
})
</div>
)
Run Code Online (Sandbox Code Playgroud)
但基本上,我希望每三个项目都被包裹在一个具有特殊类的 div 中,所以是这样的:
return (
<div>
<div className='group-of-3'>
<span>Item 1</span>
<span>Item 2</span>
<span>Item 3</span>
</div>
<div className='group-of-3'>
<span>Item 4</span>
<span>Item 5</span>
<span>Item 6</span>
</div>
.
.
.
</div>
)
Run Code Online (Sandbox Code Playgroud)
这样做的理想方法是什么?请记住,项目的数量确实会发生变化,因此手动进行操作是不可能的。
假设你有一个数组,并希望将它除以3的块.如果数组是..
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
Run Code Online (Sandbox Code Playgroud)
......新阵列将是
let newArr = [1, 4, 7, 10, 13, 2, 5, 8, 11, 3, 6, 9, 12]
// In other words:
1 2 3
4 5 6
7 8 9
10 11 12
13
Run Code Online (Sandbox Code Playgroud)
分块部分应该是这个代码(如果排序的话newArr):
let chunkedArr = _.chunk(_.toArray(newArr), 3);
Run Code Online (Sandbox Code Playgroud)
... ...但是我无法弄清楚如何排序arr,以newArr能够在块正确的顺序.处理此类案件的正确方法是什么?
请注意,整数只是伪,我将使用适当的数组对象.
我想将数组更改为这样的对象:
array = ["blue" , "txt2" , "red" ,"txt4" , "txt5" , "txt6" ,"txt7" , "txt8" , "txt9" ]
pages = {"page1" :["blue","txt2", "red"] , "page2" : ["txt4", "txt5", "txt6"], "page3" : ["txt7" ,"txt8", "txt9"]
Run Code Online (Sandbox Code Playgroud)
对象中的每个键pages都应该有一个包含 3 个数组元素的数组值(最后一个键可以有更少的元素),因此,例如,如果一个数组有 110 个元素,我们将有 37 个pages(第 1 页,第 2 页,...,第 37 页)和第 37 页将有 1 个元素。
pages所以我想将数组中的每 3 个元素作为对象中键的值
但我不知道该怎么做..谢谢你的帮助
javascript ×8
arrays ×7
firebase ×1
json ×1
lodash ×1
reactjs ×1
set ×1
sorting ×1
splice ×1
typescript ×1