当前位置: 首页 > 知识库问答 >
问题:

javascript - js 数组的数据处理?

万俟旭
2024-05-10

js 数组的数据处理

let a = 2;arr = [3,4,5,6,7,8,9]

这个2数字不是固定的,
如果a这个值是2 我需要得到arr为
arr = [9]

如果a这个值是4 我需要得到arr为
arr = [7,8,9]

大佬们帮我看看

共有2个答案

田昊天
2024-05-10

啊?除余是这样的?你是说 arr 的长度除余?

那就是这样的

const arr = [3,4,5,6,7,8,9]function test(n) {  return arr.slice(-(arr.length%n))}test(2)// [9]test(4)// [7, 8, 9]
郎羽
2024-05-10

为了根据变量a的值来处理数组arr,并返回满足条件的子数组,我们可以使用数组的slice方法。slice方法返回一个新的数组对象,包含从beginend(不包括end)的arrayObject的浅拷贝。

以下是基于你提供的需求的JavaScript代码:

let a = 2; // 假设a的值可以改变let arr = [3, 4, 5, 6, 7, 8, 9];// 计算新数组的开始索引let startIndex = arr.length - a;// 使用slice方法获取子数组let newArr = arr.slice(startIndex);console.log(newArr);

这段代码会计算出新数组的开始索引(startIndex),该索引是原始数组长度减去a的值。然后,使用slice方法从该索引开始,一直到数组末尾的元素,来创建一个新的子数组。

对于你的两个例子:

  • 如果a的值是2,startIndex将会是7 - 2 = 5slice(5)将返回[7, 8, 9],但这不是你期望的[9]。你的描述可能需要调整,因为a为2时,应该返回数组末尾的两个元素,而不是一个。
  • 如果a的值是4,startIndex将会是7 - 4 = 3slice(3)将返回[6, 7, 8, 9],这同样与你的期望[7, 8, 9]不符。

如果你的需求是始终返回数组末尾的a个元素,则应该使用Math.max来确保startIndex不会是一个负数:

let a = 2; // 假设a的值可以改变let arr = [3, 4, 5, 6, 7, 8, 9];// 确保startIndex不会是一个负数let startIndex = Math.max(arr.length - a, 0);// 使用slice方法获取子数组let newArr = arr.slice(startIndex);console.log(newArr);

现在,对于a为2的情况,startIndex将会是7 - 2 = 5slice(5)将返回[6, 7, 8, 9];对于a为4的情况,startIndex将会是7 - 4 = 3slice(3)将返回[6, 7, 8, 9]

请确保你的需求描述正确,并相应地调整代码。如果你的意图是始终返回数组末尾的a个元素(即使这会导致返回整个数组),则上述代码是正确的。如果你有不同的需求,请提供进一步的细节。

 类似资料:
  • let num = 600; num是最大数为600,然后根据arr数组里面的test的值之和(5+4+5+6)为20, 600 / 20 = 30; 希望得到下面的格式: 图片第一列5个输入框对应数组arr里面下标为0的test的值为5 图片第二列4个输入框对应数组arr里面下标为1的test的值为4 ... 控制1-30之间的随机数里面的输入框修改的时候只能输入1-30的数, 控制31-60之

  • arr数组最小长度是4最大是8 let num = 600;暂时写死600,这个数自定义输入的 麻烦各位大佬帮忙看看

  • js数据处理 const translations = { 'editor.remove': 'Remove', 'editor.copy': 'Copy', 'editor.words': 'WORDS', 'editor.characters': 'CHARACTERS', 'editor.default': 'Default', 'editor.recent': 'Recently Used

  • // 最大值是1000 let num = 1000; num是最大数为1000,然后根据arr数组里面的test的值之和(3+4+5+6)为18, 1000 / 18 = 55(求整数); 然后需要得到的格式排列的数据如下: 麻烦各位大佬帮忙看看,写了循环,排列的数据格式不对,双循环的排列按顺序的话要怎么写?

  • 在vue3中循环这个arr数组,怎么让数据竖向显示,如下图 这样双循环没有达到效果, 请问循环前是不是要处理一下arr这个数据

  • 根据items数组里面num的值去arr数组里面拿数据,按竖向排序 期望得到数据格式: 麻烦各位大佬看看,感激不尽