假设我的嵌套数组的格式为[纬度,经度],而我要输入的数组为[[10,20],[30,40],[50,60]]。
我想返回一个只有纬度的数组,所以 [10,30,50] 现在,我该如何使用JavaScript?
答案 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#map
与array#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)