0

API 配列に少し問題があります。基本的に、API 配列からの情報の最初のオブジェクトのみを表示したいと考えています。私は Slice() および substr() 関数をいじっていましたが、うまく機能させることができませんでした。私はあなたが欲しいことを示すためにフィドルを作りました。

HTML:

<h3>Wind Speed:</h3><div class='speed'></div> <br>
<h3>Wind Direction:</h3><div class='thug'></div><br>
<h3>Wave Height:</h3><div class='test'></div><br>
<h3>Ignore:</h3><div class='wave'></div><br>

JS:

var url = 'http://magicseaweed.com/api/CP86f5quQqmB1fpW2S3bZVUCS8j1WpUF/forecast/?spot_id=1323'

$.ajax({
    dataType: "jsonp",
    url: url
}).done(function(data) {
    console.log(data);
    sum = 0;

   //---Wind Speed---------------------------------- 
     $.each(data, function(){
        sum += this.wind.speed;
    });
    $('.speed').html(sum / data.length + data[0].wind.unit);



     //---Ignore---------------------------------- 
     $.each(data, function(){
        sum += this.swell.maxBreakingHeight;
    });
    $('.wave').html(sum);


     //---Wave Height---------------------------------- 

    $.each(data, function(){
        $('.test').append('<p>' + this.swell.maxBreakingHeight + '</p>'); 
    });


     //---Wind Direction---------------------------------- 

    $.each(data, function(){
        sum += this.wind.compassDirection ;
    });

    var numbers = sum;
     $('.thug').append('<p>' + numbers.slice( 3,4) + '</p>');
});

この例では、最初の数字 (この場合は「4」) のみを表示したいと考えています。誰かが私を助けてくれたら本当にありがたいです.私はJavascriptにかなり慣れていないので、何年も頭を悩ませてきました!

ありがとう

4

1 に答える 1

1

あなたができるあなたの値の平均を得るために、

//---Wave Height---------------------------------- 
    var averageMaxBreakingHeight=0;
    var numberOfValues=0;
    $.each(data, function(){
        averageMaxBreakingHeight+=parseFloat(this.swell.maxBreakingHeight);
            numberOfValues++;
        /*$('.test').append('<p>' + this.swell.maxBreakingHeight + '</p>'); */
    });
    averageMaxBreakingHeight=averageMaxBreakingHeight/numberOfValues;
    $('.test').append('<p>'+averageMaxBreakingHeight+'</p>');


     //---Wind Direction---------------------------------- 

//以下の数値変数は、必要な任意の変数、つまり averageMaxBreakingHeight にすることができます

10進数の単位だけが必要な場合は、次のことができます。

numbers.substr(0,numbers.indexOf('.'))

丸めるには、

Math.round(parseFloat(numbers));

数値を小数点以下 2 桁まで切り上げるには、次のようにします。

Math.round(parseFloat(numbers) * 100) / 100;
于 2013-10-17T10:41:09.843 に答える