Path: csiph.com!usenet.pasdenom.info!goblin3!goblin1!goblin.stu.neva.ru!news.astraweb.com!border5.a.newsrouter.astraweb.com!xlned.com!feeder7.xlned.com!npeer.de.kpn-eurorings.net!npeer-ng0.de.kpn-eurorings.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Content-Type: text/plain; charset="UTF-8" Message-ID: <2660419.M6LF0BO9E7@PointedEars.de> From: Thomas 'PointedEars' Lahn Reply-To: Thomas 'PointedEars' Lahn Organization: PointedEars Software (PES) Date: Fri, 14 Jun 2013 15:01:15 +0200 User-Agent: KNode/4.10.2 Content-Transfer-Encoding: 8Bit X-Face: %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&. MIME-Version: 1.0 Lines: 101 NNTP-Posting-Date: 14 Jun 2013 15:01:19 CEST NNTP-Posting-Host: 0a5e580f.newsspool3.arcor-online.net X-Trace: DXC=OMffhj56C]l<6cDJZfMd_cMcF=Q^Z^V3h4Fo<]lROoRa8kF On Fri, 14 Jun 2013 00:15:37 -0700, JT wrote: >> Can i somehow tell which javascript elements to shift? >> Is something like following possible element[i].shift() >> >> Many times one want to change items not necessarily at element[0], and >> sometimes you want to swap them with another index. >> >> I think the shift function should take one or two parameters or a new >> function should be constructed. >> >> element [x][y].swap(); >> >> It is not hard to swap elements but it make more sense then the >> noneflexible shift() function. > > If you want to swap elements x and y in an array: > > element [x][y].swap(); > > makes no sense. ACK. > Your function would have to be something like: > > array.swap_elements(x,y); > > But why would you ever need to do this except in the context of sorting? One can never know. > An array is either ordered or unordered - if it's unordered it doesn't > matter what order the elements are in, Your logic is flawed – again. > and if you want it ordered according to some specific algorithm, just > write a custom sort function and sort with it: > > array.sort(sortfunction); > > where: > > sortfunction( a, b ) {} > > returns <0 if a comes first, >0 if b comes first, 0 if they're equal. As that is a syntax error, it does not return anything. Functions are declared with function identifier (parameter1, parameter2/*, …*/) { // … } and called with identifier(argument1, argument2/* , … */); [The number of arguments does not need to match the number of formal parameters. If an argument is passed for which there is no parameter, its value is available via a numeric zero-based property of the “arguments” object in the function context. If no argument is passed for a formal parameter, it is initialized with the “undefined” value. Also, the value of the “arguments.length” property yields the number of arguments that have been passed to a function.] It is not always necessary to declare a function as there are function expressions: array.sort(function (a, b) { // … }); or var sortNumerically = function (a, b) { return a - b; }; array.sort(sortNumerically); A function declaration and the latter approach has the advantage that an unchanging function needs only be created once. The advantage of a function expression over a function declaration primarily is that its evaluation result (a Function instance reference) can be assigned as value to any property, allowing for namespacing. [It is strongly recommended to define and use this trivial sort function, as the default is implementation-dependent and may sort the elements as string values instead.] See also: -- PointedEars Twitter: @PointedEars2 Please do not Cc: me. / Bitte keine Kopien per E-Mail.