JS配列の長さ問題
6808 ワード
jsと言っても行列の長さを取っても、最初にarray.lengthを思い出します.
しかしながら、lengthには明らかな欠陥がある:
たとえば:
したがって、配列の長さを計算するためには、カスタム関数が望ましいです.特に、関連配列とオブジェクト配列!
ユーザー定義の長さ関数が使用されます.
type of
.toString().length
for in
length
くりを一つあげる:
しかしながら、lengthには明らかな欠陥がある:
たとえば:
var str = [];
str[99] = 99;
console.log(str.length);
得られた結果は100です.var str = [];
str['name'] = 'javascript';
str['test'] = 'sdsdsdsdsd';
console.log(str.length);
得られた結果は0ですvar str = {'name':'javascript','test':'sdsdsdsdsd'};
console.log(str.length);
得られた結果はundefinedです.したがって、配列の長さを計算するためには、カスタム関数が望ましいです.特に、関連配列とオブジェクト配列!
ユーザー定義の長さ関数が使用されます.
type of
.toString().length
for in
length
くりを一つあげる:
function a_count(atr) {
var s = typeof str;
//if(s == 'string'){}
if(s == 'object'){
if(str.toString().length == 0){
return 0;
}else{
var i = 0;
for(var j in str){
if(str[j].length != undefined){
i++;
}
}
return i;
}
}
}
function b_count(str) {
var s = typeof str;
if(s == 'object'){
if(str.toString().length == 0){
return 0;
}else{
var i = 0;
for(var j in str){
if(str[j].length != undefined){
i = str[j].length;
}
}
return i;
}
}
}
以上の栗はそのまま運びません.特定の配列の計算方法です.具体的な書き方はやはり自分の需要によって書きます.まず自分で計算する配列の構造を調整してみます.