2016-08-15 14 views
-1

私は、オブジェクトの2つのプロパティによって文字列の長さを取得する必要があります。配列のオブジェクトから最大文字列を得る方法

データ:ループ内.lengthを使用し、SVY 『

+0

何を試しましたか?配列を反復処理するだけです。 – 4castle

+0

そのプロパティの配列内のすべてのオブジェクトの最大長を持つ文字列を取得する方法を尋ねていますか? – Josh

答えて

0

は、あなたのオブジェクト内のそれぞれの長さのリテラルを取得するには:エルサルバドル『と国コード』:「国』を取得する方法

[ { 
    Country Code : 'CZ', 
    Country  : 'El Salvador' 
},{ 
    Country Code : 'SVY', 
    Country  : 'Czech' 
} ] 

for (var i = 0; i < data.length; i++){ 
    var countryLen = data[i].country.length; //11 5 
    var countryCodeLen = data[i].countryCode.length; //2 3 
} 

以下のようにしかし、あなたは

下記参照、あなたのオブジェクトの中で最も長い文字列を返すようにしようとしている場合 .map()の詳細について
var maxLen = Math.max.apply(Math, data.map(function (o) { return o.countryCode.length })); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

+0

'maxLen'は最長の文字列ではありません。これは最長の文字列の長さです。私の答えのようにreduceを参照してください。 – Josh

+0

正直なところ私は@ axonの質問 –

0

以下を参照のことreduceを使用するソリューションです。 arrのすべてのオブジェクトには、propNameというプロパティが含まれている必要があります。

let longestStr = (arr, prop) => 
    arr.reduce((p,c) => p.length > c[prop].length ? p : c[prop] , '') 

longestStrストリングであるべきである配列arrとプロパティ名propをとる関数です。 reduceの仕組みについて詳しくは、MDN referenceをお勧めします。

+0

を誤解しています。 *または* how *このコードで問題を解決すると、この回答の長期的な価値が向上します。 –

関連する問題