如何在每个负数中拆分数组
How to split array in every negative number
我有一个这样的数组
number = [4, -1, 6, -2, 3, 5, -7, 7]
遇到负值有什么办法拆分吗?
所以,会是这样
array = [[4], [-1], [6], [-2], [3,5], [-7], [7]]
我认为可以使用正则表达式来完成,但我仍然没有找到
谢谢
首先创建几个temporary
数组来保存值。
Loop
通过你的 主数组 .
然后检查数字是否 greater
而不是 0.
将正数添加到新创建的临时数组中。
此外,检查最后一个元素并将其推入输出数组
必填。
在 else 部分检查元素 less
然后 zero
然后首先将正数的临时数组压入输出数组。
之后压入负数的负数临时数组。
将负数的临时数组推入输出数组。
现在,为正数和负数重置临时数组。
let number = [4, -1, 6, -2, 3, 5, -7, 7];
let array = [];
let tempArr = [];
let tempArrForNeg = [];
let numberLength = number.length;
for(let i = 0; i < numberLength; i++){
if(number[i] > 0){
tempArr.push(number[i]);
if(i === (numberLength - 1))
array.push(tempArr);
}
else{
array.push(tempArr);
tempArrForNeg.push(number[i]);
array.push(tempArrForNeg);
tempArr = [];
tempArrForNeg = [];
}
}
console.log(array);
//[[4], [-1], [6], [-2], [3,5], [-7], [7]]
试试这个:
var number= [1,-2,5,6,2,-2,-3,-4,5];
console.log(splitByPositivity(number));
function splitByPositivity(numArr) {
var newArr = []
var tempArr = [numArr[0]];
for (var i=1;i<numArr.length;i++){
if (numArr[i]>0&&tempArr[tempArr.length-1]>0||numArr[i]<0&&tempArr[tempArr.length-1]<0)
tempArr.push(numArr[i])
else{
newArr.push(tempArr)
tempArr = [numArr[i]];
}
}
newArr.push(tempArr);
return newArr;
}
注意你需要处理0值。它不是消极的也不是积极的
我有一个这样的数组
number = [4, -1, 6, -2, 3, 5, -7, 7]
遇到负值有什么办法拆分吗?
所以,会是这样
array = [[4], [-1], [6], [-2], [3,5], [-7], [7]]
我认为可以使用正则表达式来完成,但我仍然没有找到
谢谢
首先创建几个
temporary
数组来保存值。Loop
通过你的 主数组 .然后检查数字是否
greater
而不是 0.将正数添加到新创建的临时数组中。
此外,检查最后一个元素并将其推入输出数组 必填。
在 else 部分检查元素
less
然后 zero然后首先将正数的临时数组压入输出数组。
之后压入负数的负数临时数组。
将负数的临时数组推入输出数组。
现在,为正数和负数重置临时数组。
let number = [4, -1, 6, -2, 3, 5, -7, 7];
let array = [];
let tempArr = [];
let tempArrForNeg = [];
let numberLength = number.length;
for(let i = 0; i < numberLength; i++){
if(number[i] > 0){
tempArr.push(number[i]);
if(i === (numberLength - 1))
array.push(tempArr);
}
else{
array.push(tempArr);
tempArrForNeg.push(number[i]);
array.push(tempArrForNeg);
tempArr = [];
tempArrForNeg = [];
}
}
console.log(array);
//[[4], [-1], [6], [-2], [3,5], [-7], [7]]
试试这个:
var number= [1,-2,5,6,2,-2,-3,-4,5];
console.log(splitByPositivity(number));
function splitByPositivity(numArr) {
var newArr = []
var tempArr = [numArr[0]];
for (var i=1;i<numArr.length;i++){
if (numArr[i]>0&&tempArr[tempArr.length-1]>0||numArr[i]<0&&tempArr[tempArr.length-1]<0)
tempArr.push(numArr[i])
else{
newArr.push(tempArr)
tempArr = [numArr[i]];
}
}
newArr.push(tempArr);
return newArr;
}
注意你需要处理0值。它不是消极的也不是积极的