string與array互轉: split(), join(), toString()

1
2
3
4
var str1 = 'AEIOU';
var arr = str1.split(''); // 回傳['A','E','I','O','U'], 不改變原string
var str2 = arr.join('~'); // 回傳'A~E~I~O~U', 不改變原array
arr.toString(); // 'A,E,I,O,U', 改變原array變成string

遍歷array回傳新array: map()

1
2
var arr1 = [20,6,38,15,11];
var arr2 = arr1.map(function(v){ return v > 14 }); //回傳[20,38,15], 不改變原array

單純判斷array中某值是否存在: 運用indexOf()

1
2
3
var arr = ['A','C','E'];
console.log( arr.indexOf('B') > -1 ); // 'false'
// indexOf() returns -1 when there's no matched index of item.

移除array中重複的值:

1
var newArr = originArr.filter(function(v,i,arr){ retrun arr.indexOf(v) === i })

p.s. ES6可使用新的 Set 物件。類似array的資料結構但值不會重複,但沒有index,操作上要熟用Set的method。

取得object的”長度”(有幾組key-value pairs):

(碎碎念)應付有些API傳的data明明適合用array,硬要丟json object過來的情況…

1
2
3
4
5
6
7
8
var result = { 
'1':'Google',
'2':'Apple',
'3':'Facebook',
'4':'Microsoft',
};

console.log( Object.keys(result).length ); //4 , ['1', '2', '3', '4'].length