How to Get Subarray from Array

How to get subarray from array?

Take a look at Array.slice(begin, end)

const ar  = [1, 2, 3, 4, 5];

// slice from 1..3 - add 1 as the end index is not included

const ar2 = ar.slice(1, 3 + 1);

console.log(ar2);

javascript: get subarray from an array by indexes

You could use map;

var array1 = ["a","b","c"];var array2 = [0,2];var array3 = array2.map(i => array1[i]);console.log(array3);

Best method to create a sub array from an array in C

memcpy(a2, &a[1], 2*sizeof(*a));

How to get a sub-array in python?

Slices are half-open intervals. You need to increase each upper bound by one.

>>> x[5:8,3:6]
array([[53, 54, 55],
[63, 64, 65],
[73, 74, 75]])

Also, the indices start at 0, which is why x[:2,:2] worked the way you expected, despite your expectation being off. :2 is short for 0:2, not 1:2.

Iteratively split an array to subarrays according to a given length

It seems you want to create all subarrays of a given length from an array.

You can do it by hand:

static double[][] subArrays(double[] arr, int k)
{
double[][] subArrs = new double[arr.length-k+1][k];

for(int i=0; i<subArrs.length; i++)
for(int j=0; j<k; j++)
subArrs[i][j] = arr[i+j];

return subArrs;
}

Or use the built-in method Arrays.copyOfRange:

static double[][] subArrays(double[] arr, int k)
{
double[][] subArrs = new double[arr.length-k+1][];

for(int i=0; i<subArrs.length; i++)
subArrs[i] = Arrays.copyOfRange(arr, i, i+k);

return subArrs;
}

Test:

double[] arr = {2, 4, 6, 30, 9};

for(double[] subArr : subArrays(arr, 3))
System.out.println(Arrays.toString(subArr));

Output:

[2.0, 4.0, 6.0]
[4.0, 6.0, 30.0]
[6.0, 30.0, 9.0]

How to get a sub array of array in Java, without copying data?

Many classes in Java accept a subset of an arrays as parameter. E.g. Writer.write(char cbuf[], int off, int len). Maybe this already suffices for your usecase.



Related Topics



Leave a reply



Submit