2016-03-29 54 views
0

我有一个数组jQuery的删除所有,除了第一个和最后一个号码

var aa = ["500", "600", "700", "800", "900", "1000", "1100", "1200"] 

我需要删除所有除第一个和最后一个。问题虽然有时我的数组只有一个值var = ["500"],我需要保留它,因为它是第一个值。

aa.slice(1,-1); 

切片["500"]将导致[],我需要["500"]

+1

你能不能有if语句,用于检查元素的个数? (额外的一行和有人看你的代码将知道发生了什么:)) –

+0

最后一个元素不应该有逗号。解决方案是jQuery还是JavaScript可以吗?如果是,请用JavaScript标记表明。 – zer00ne

回答

2

只是替代:

var bb = aa.length > 2 ? [aa[0], aa[aa.length - 1]] : aa; 
+0

或'if(aa.length> 2)aa = [aa [0],aa [aa.length - 1]]'如果您不想更改var名称。 –

+0

完美!这工作!谢谢 – JoshuaNa

+0

有没有办法去除las两个零?而是500,我会有5? – JoshuaNa

2

简单和容易(这将保持阵列,如果有他们(第一次和最后一次)2,如果你不需要那么,改变arr.length> 1)

var arr = ["100", "200", "300", "400", "100200"]; 

if (arr.length > 2) { 
    arr = [arr.shift(), arr.pop()] 
} 

arr[0] = arr[0].replace(/00$/, ""); 
arr[1] = arr[1].replace(/00$/, ""); 

console.log(arr); 

https://jsfiddle.net/87dgkeeh/3/

+0

这给了我反对[2,3],我需要[1,4] – JoshuaNa

+0

对不起,读错了,这是新版本 –

+0

好极了,有没有办法去掉las 2零而不是1200,它会是12等 – JoshuaNa

0
var aa = ["500", "600", "700", "800", "900", "1000", "1100", "1200"] 
[aa.shift(), aa.pop()].filter(function(n){ return n != undefined }) 
// => Array [ "500", "1200" ] 

var aa = ["500"] 
[aa.shift(), aa.pop()].filter(function(n){ return n != undefined }) 
// => Array [ "500" ] 
+0

不是给你'[String,Undefined]'的数组1吗? –

+0

什么情况下只有一个元素? –

相关问题