2017-03-28 2 views
0

与えられたすべてのデータの中でステータス '0'または 'EMPTY'から座標を取得する方法は不思議でした。ステータス[0,1]に基づいて特定の座標をソートする方法

var locations = [ 
    ['FULL',3.720185, 103.124075,1], 
    ['EMPTY',3.719693, 103.123896,0], 
    ['FULL',3.720916, 103.12492,1], 
    ['EMPTY',3.721032, 103.124532,0], 
    ['FULL',3.722299, 103.124587,1], 
    ['FULL',3.723189, 103.124706,1], 
    ['FULL',3.725067, 103.124593,1] 
    ]; 

    for (var k=0;k<locations.length; k++) 
    { 
     if (locations[i][3]==0) { 
     var diff=getDistanceFromLatLonInKm(position.coords.latitude,position.coords.longitude,locations[k][1],locations[k][2]); 
     x.innerHTML = "<h1>Distance of nearest bin: "+ Math.min(diff)+"km</h1>"; 
     } 

これはこれまで私が試したことです。

+0

フィルタリングまたはソートのいずれかを追加してください。 [0、1]はどうなりますか?どういう意味ですか? –

答えて

0

各位置アレイ(falsyある)0に等しいEMPTYに等しい第1要素または第四の要素を持っているかどうかをチェックする述語関数を渡し使用Array#filter

var locations = [ 
 
    ['FULL', 3.720185, 103.124075, 1], 
 
    ['EMPTY', 3.719693, 103.123896, 0], 
 
    ['FULL', 3.720916, 103.12492, 1], 
 
    ['EMPTY', 3.721032, 103.124532, 0], 
 
    ['FULL', 3.722299, 103.124587, 1], 
 
    ['FULL', 3.723189, 103.124706, 1], 
 
    ['FULL', 3.725067, 103.124593, 1] 
 
] 
 

 
var result = locations.filter(function (e) { 
 
    return e[0] === 'EMPTY' || !e[3] 
 
}) 
 

 
console.log(result)
.as-console-wrapper { min-height: 100%; }

0

あなたできますfilter場所:

var locations = [ 
 
    ['FULL', 3.720185, 103.124075, 1], 
 
    ['EMPTY', 3.719693, 103.123896, 0], 
 
    ['FULL', 3.720916, 103.12492, 1], 
 
    ['EMPTY', 3.721032, 103.124532, 0], 
 
    ['FULL', 3.722299, 103.124587, 1], 
 
    ['FULL', 3.723189, 103.124706, 1], 
 
    ['FULL', 3.725067, 103.124593, 1] 
 
]; 
 

 
var emptyLocations = locations.filter(function(location) { 
 
    return location[0] === 'EMPTY' || location[3] === 0; 
 
}); 
 

 
console.log(emptyLocations); 
 
// [["EMPTY", 3.719693, 103.123896, 0], ["EMPTY", 3.721032, 103.124532, 0]]

関連する問題