special array cycles
Question posted by: padew
(Guest)
on
August 24th, 2006 04:05 PM
Array so: for every value 1st column correspond one in 2nd
2 25
25 27
27 60
4 50
27 61
be able to write this
2 25,27,60,61
4 50
this steps:
-2nd isn't in right then rewrite in 1st column with its value (25)
-the 25 is also in 2nd column, then its value 27 go near 25
.....
some particular code?
Would you like to answer this question?
Sign up for a free account, or Login (if you're already a member).
|
|
August 24th, 2006 06:55 PM
# 2
|
Re: special array cycles
On 8/24/2006 12:10 PM, padew wrote:
Quote:
Originally Posted by
Array so: for every value 1st column correspond one in 2nd
2 25
25 27
27 60
4 50
27 61
>
be able to write this
2 25,27,60,61
4 50
>
this steps:
-2nd isn't in right then rewrite in 1st column with its value (25)
-the 25 is also in 2nd column, then its value 27 go near 25
....
>
some particular code?
|
There are probably simpler ways to do this, but here's one:
a=[[2,25],[25,27],[27,60],[4,50],[27,61]];
function foo (x)
{
var z=[];
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
y = Math.floor (y / 10);
if (z[y] == null)
z[y] = [x[i][1]];
else
z[y].push (x[i][1]);
}
return z;
}
As you can see, I'm presuming that you meant to truncate 1st col
numbers 9 to the tens (and beyond) digits.
--
_________________________________________
Bob Smith -- Join Bytes!
To reply to me directly, delete "despam".
|
|
August 25th, 2006 02:15 AM
# 3
|
Re: special array cycles
I have tested (see code below);
but I have some undefinid value.
Now I have:
undefined
undefined
25,27,60,61
undefined
50
anyway the result seem ok;
undefined is my bad code (can you correct?)
but I would like to have the first values 2 and 4
2 25,27,60,61
4 50
-------------
and if I use this
x=[[2,3],[3,4],[1,10],[16,12],[1,15],[2,16],[4,18],[16,19],[1,20],[6,23],[10,25],[10,26],[19,30],[25,32]];
what I must to change in the code?
I think 9 and 10, but change with 27 e 28?
I have now 14 element [ ] in X; is so?
for tests:
function foo ()
{ var var_box=document.frm.my_box;
var var_c=0;
x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
var z=[];
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
y = Math.floor (y / 10);
if (z[y] == null)
z[y] = [x[i][1]];
else
z[y].push (x[i][1]);
}
/*return z;*/
for (var ii = 0; ii<z.length; ii++)
{ var_box.options[var_c++]=new Option(z[ii]);}
}
</script>
<form method="post" name="frm" action="">
<select name="my_box" size="10" style="width:200px">
</select>
<br />
<input type="button" value="ok" onclick="foo()" />
</form>
|
|
August 25th, 2006 02:15 AM
# 4
|
Re: special array cycles
Quote:
Originally Posted by
There are probably simpler ways to do this, but here's one:
|
you remember where and how ?
because you are the only solution, I founded at the moment.
|
|
August 25th, 2006 10:35 PM
# 5
|
Re: special array cycles
On 8/24/2006 10:24 PM, padew wrote:
Quote:
Originally Posted by
I have tested (see code below);
but I have some undefinid value.
Now I have:
undefined
undefined
25,27,60,61
undefined
50
>
anyway the result seem ok;
>
undefined is my bad code (can you correct?)
but I would like to have the first values 2 and 4
2 25,27,60,61
4 50
-------------
and if I use this
x=[[2,3],[3,4],[1,10],[16,12],[1,15],[2,16],[4,18],[16,19],[1,20],[6,23],[10,25],[10,26],[19,30],[25,32]];
>
what I must to change in the code?
I think 9 and 10, but change with 27 e 28?
I have now 14 element [ ] in X; is so?
>
>
for tests:
>
function foo ()
{ var var_box=document.frm.my_box;
var var_c=0;
>
x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
>
var z=[];
>
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
y = Math.floor (y / 10);
if (z[y] == null)
z[y] = [x[i][1]];
else
z[y].push (x[i][1]);
}
>
/*return z;*/
for (var ii = 0; ii<z.length; ii++)
{ var_box.options[var_c++]=new Option(z[ii]);}
>
>
}
>
>
</script>
>
<form method="post" name="frm" action="">
<select name="my_box" size="10" style="width:200px">
</select>
<br />
<input type="button" value="ok" onclick="foo()" />
</form>
|
Perhaps I'm confused. If we start with
[[2,25], [25,27], [27,60], [4,50], [27,61]]
what should the result be?
Perhaps you want it to be
[[2, [25,27,60,61]], [4, [50]]]
or is it something else?
--
_________________________________________
Bob Smith -- Join Bytes!
To reply to me directly, delete "despam".
|
|
August 26th, 2006 09:25 AM
# 6
|
Re: special array cycles
Il Fri, 25 Aug 2006 22:42:10 GMT, Bob Smith ha scritto:
Quote:
Originally Posted by
On 8/24/2006 10:24 PM, padew wrote:
Quote:
Originally Posted by
>I have tested (see code below);
>but I have some undefinid value.
>Now I have:
>undefined
>undefined
>25,27,60,61
>undefined
>50
>>
>anyway the result seem ok;
>>
>undefined is my bad code (can you correct?)
>but I would like to have the first values 2 and 4
>2 25,27,60,61
>4 50
>-------------
>and if I use this
>x=[[2,3],[3,4],[1,10],[16,12],[1,15],[2,16],[4,18],[16,19],[1,20],[6,23],[10,25],[10,26],[19,30],[25,32]];
>>
>what I must to change in the code?
>I think 9 and 10, but change with 27 e 28?
>I have now 14 element [ ] in X; is so?
>>
>>
>for tests:
>>
>function foo ()
>{ var var_box=document.frm.my_box;
> var var_c=0;
>>
>x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
>>
>var z=[];
>>
> for (var i = 0; i < x.length; i++)
> {
> var y = x[i][0];
> if (y 9)
> y = Math.floor (y / 10);
> if (z[y] == null)
> z[y] = [x[i][1]];
> else
> z[y].push (x[i][1]);
> }
>>
> /*return z;*/
> for (var ii = 0; ii<z.length; ii++)
> { var_box.options[var_c++]=new Option(z[ii]);}
>>
>>
>}
>>
>>
></script>
>>
><form method="post" name="frm" action="">
><select name="my_box" size="10" style="width:200px">
></select>
><br />
><input type="button" value="ok" onclick="foo()" />
></form>
|
>
Perhaps I'm confused. If we start with
>
[[2,25], [25,27], [27,60], [4,50], [27,61]]
>
what should the result be?
>
Perhaps you want it to be
>
[[2, [25,27,60,61]], [4, [50]]]
|
yes is so;
|
|
August 26th, 2006 07:35 PM
# 7
|
Re: special array cycles
On 8/26/2006 5:32 AM, padew wrote:
Quote:
Originally Posted by
Il Fri, 25 Aug 2006 22:42:10 GMT, Bob Smith ha scritto:
>
Quote:
Originally Posted by
>On 8/24/2006 10:24 PM, padew wrote:
Quote:
Originally Posted by
>>I have tested (see code below);
>>but I have some undefinid value.
>>Now I have:
>>undefined
>>undefined
>>25,27,60,61
>>undefined
>>50
>>>
>>anyway the result seem ok;
>>>
>>undefined is my bad code (can you correct?)
>>but I would like to have the first values 2 and 4
>>2 25,27,60,61
>>4 50
>>-------------
>>and if I use this
>>x=[[2,3],[3,4],[1,10],[16,12],[1,15],[2,16],[4,18],[16,19],[1,20],[6,23],[10,25],[10,26],[19,30],[25,32]];
>>>
>>what I must to change in the code?
>>I think 9 and 10, but change with 27 e 28?
>>I have now 14 element [ ] in X; is so?
>>>
>>>
>>for tests:
>>>
>>function foo ()
>>{ var var_box=document.frm.my_box;
>> var var_c=0;
>>>
>>x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
>>>
>>var z=[];
>>>
>> for (var i = 0; i < x.length; i++)
>> {
>> var y = x[i][0];
>> if (y 9)
>> y = Math.floor (y / 10);
>> if (z[y] == null)
>> z[y] = [x[i][1]];
>> else
>> z[y].push (x[i][1]);
>> }
>>>
>> /*return z;*/
>> for (var ii = 0; ii<z.length; ii++)
>> { var_box.options[var_c++]=new Option(z[ii]);}
>>>
>>>
>>}
>>>
>>>
>></script>
>>>
>><form method="post" name="frm" action="">
>><select name="my_box" size="10" style="width:200px">
>></select>
>><br />
>><input type="button" value="ok" onclick="foo()" />
>></form>
|
>Perhaps I'm confused. If we start with
>>
>[[2,25], [25,27], [27,60], [4,50], [27,61]]
>>
>what should the result be?
>>
>Perhaps you want it to be
>>
>[[2, [25,27,60,61]], [4, [50]]]
|
>
yes is so;
|
Try this instead
function foo (x)
{
var z={};
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
y = Math.floor (y / 10);
if (y in z)
z[y].push (x[i][1]);
else
z[y] = [x[i][1]];
}
return z;
}
which actually returns
{2:[25,27,60,61], 4:[50]}
which should be easier to use.
--
_________________________________________
Bob Smith -- Join Bytes!
To reply to me directly, delete "despam".
|
|
August 26th, 2006 10:15 PM
# 8
|
Re: special array cycles
now for test I use this, and see the result on popup;
but I not see similar that your result {2:[25,27,60,61], 4:[50]};
I not see 2 and 4;
for use with alert I chenge x (now inner function)
and z={}; in z=[];
can you write the code that you use for se the results?
my modified
function foo()
{
x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
var z=[];
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
{y = Math.floor (y / 10);}
if (y in z)
{z[y].push (x[i][1]);}
else
{z[y] = [x[i][1]];}
}
return alert(z);
}
|
|
August 28th, 2006 03:15 PM
# 9
|
Re: special array cycles
On 8/26/2006 6:24 PM, padew wrote:
Quote:
Originally Posted by
now for test I use this, and see the result on popup;
but I not see similar that your result {2:[25,27,60,61], 4:[50]};
I not see 2 and 4;
for use with alert I chenge x (now inner function)
and z={}; in z=[];
>
can you write the code that you use for se the results?
>
my modified
function foo()
{
>
x=[[2,25],[25,27],[27,60],[4,50],[27,61]];
>
>
var z=[];
>
for (var i = 0; i < x.length; i++)
{
var y = x[i][0];
if (y 9)
{y = Math.floor (y / 10);}
if (y in z)
{z[y].push (x[i][1]);}
else
{z[y] = [x[i][1]];}
}
>
return alert(z);
}
|
Go back to using z={}; and then look at return z.toSource;
--
_________________________________________
Bob Smith -- Join Bytes!
To reply to me directly, delete "despam".
Not the answer you were looking for? Post your question . . .
183,906 Experts ready to help you find a solution.
Sign up for a free account, or Login (if you're already a member).
|