如何获取数组中子数组的第一个值?

时间:2018-10-29 03:31:27

标签: javascript

假设我的嵌套数组的格式为[纬度,经度],而我要输入的数组为[[10,20],[30,40],[50,60]]。

我想返回一个只有纬度的数组,所以 [10,30,50] 现在,我该如何使用JavaScript?

8 个答案:

答案 0 :(得分:4)

您可以像这样使用$arrayExample[0]["reference_no"] is A0013方法:

if( strpos($arrayExample[0]["reference_no"],"A0013") !==false)
{
    $arrayExample[0]["reference_no"] = array( 
[0] = //something
[1] = //something1
...
)}

答案 1 :(得分:2)

获得相同结果的另一种方法;

const arr = [[10,20],[30,40],[50,60]];
const latitudes=[];
for (let i = 0; i < arr.length; i++){
   const arr1 = arr[i];

  latitudes.push(arr1[0]); 

 }

答案 2 :(得分:1)

支持以下项: Chrome(是),Firefox(是),IE5.5 +,O(是),Safari(是)

var arr = [[10,20],[30,40],[50,60]] ;
var i = 0 , res = [] ;

while (i < arr.length ) {
  res.push(arr[i][0]) ;
  i++ ;
}

console.log (res) ;

答案 3 :(得分:1)

借助ES6,您还可以使用解构和map来解决这个问题:

var arr = [[10,20],[30,40],[50,60]];

var result = arr.map(([a]) => a)

console.log(result)

答案 4 :(得分:0)

您可以将array#maparray#destructuring一起使用,以从单个数组中获取第一个索引项。

var locations = [[10,20],[30,40],[50,60]],
    latitudes = locations.map(([latitude]) => latitude);
console.log(latitudes)

答案 5 :(得分:0)

您也可以通过reduce来做到这一点。

let obj = [[10,20],[30,40],[50,60]];

const newArr = obj.reduce((nArr, lat) => {
  nArr.push(lat[0]);
  return nArr;
}, []);

console.log(newArr);

答案 6 :(得分:0)

您有很多循环机制可供选择。最简单的是map,因为您希望得到一个数组。使用解构分配可以简化命名,但是还有更多的魔力,而且是ES6繁重的操作,因此如果要考虑跨浏览器的合规性,请记住这一点。

let log = console.log
let arr = [[10,20],[30,40],[50,60]]

// Destructuring Assignment
let ex1 = arr.map(([lat,long])=>lat) 
log('ex1:',ex1)

// Non-Destructuring
let ex2 = arr.map(set=>set[0])
log('ex2:',ex2)

// Reduce
let ex3 = arr.reduce((ar,val)=>(ar.push(val[0]),ar),[])
log('ex3:',ex3)

当然,您可以发挥创意并展宽数组,并使用数学方法挑选值:

let arr = [[10,20],[30,40],[50,60]]
let ex4 = arr.flat().filter((v,i)=>!(i%2))
console.log('ex4:',ex4)

答案 7 :(得分:0)

与forEach相同:

let latLongs = [[10, 20], [30, 40], [50, 60]]

let lats = []
latLongs.forEach(
    (latLong) => {
      lats.push(latLong[0])
    }
)

console.log(lats)