鍍金池/ 問答/HTML/ JS獲取數(shù)組里面有不同類型

JS獲取數(shù)組里面有不同類型

有一個(gè)數(shù)組 arr=["蘋果","蘋果","西瓜","蘋果","西瓜","香蕉","香蕉"];
我想獲取這組數(shù)據(jù)有不同的水果類型,有3類,如何獲取這個(gè)3了?

回答
編輯回答
笨小蛋

同樓上,用對(duì)象映射比去數(shù)組里查下標(biāo)快多了,ES6的話直接用Set

var arr = ["蘋果", "蘋果", "西瓜", "蘋果", "西瓜", "香蕉", "香蕉"];
var resolveArr = function () {
  var obj = {};
  arr.forEach(function (v) {
    if (!obj[v]) {
      obj[v] = 1;     
    }
  });
  return Object.keys(obj);
};
console.log(resolveArr(arr));
//是不是很弱智,這么長,hhh

var obj = {};
var arr = ["蘋果", "蘋果", "蘋果", "西瓜", "蘋果", "西瓜", "香蕉", "香蕉"];
var newArr = [];
var l = arr.length;
for (var i = 0; i < l; i++) {
  var item = arr[i];
  if (!obj[item]) {
    newArr.push(item);
    obj[item] = 1;
  }
}
console.log(newArr);
2017年12月25日 04:43
編輯回答
蔚藍(lán)色

就是一個(gè)簡單的去重

arr.reduce((p,n)=>{
    if(p.indexOf(n) === -1){
        p.push(n)
    }
    return p;
},[])
2018年8月23日 21:46
編輯回答
蔚藍(lán)色

新建一個(gè)數(shù)組,對(duì)獲取的數(shù)據(jù)進(jìn)行遍歷,沒有的push進(jìn)去,有的排除,然后再輸出一下數(shù)據(jù)的長度,就可以了

2017年1月24日 09:12
編輯回答
久愛她

用loadash

_.uniq(你的數(shù)組)
2017年7月16日 01:58
編輯回答
薔薇花

這是個(gè)數(shù)組去重的問題。
var arrLen = [...new Set(arr)].length;

2017年10月13日 01:05
編輯回答
菊外人
const fruit = {}
const arr = ["蘋果","蘋果","西瓜","蘋果","西瓜","香蕉","香蕉"]
arr.forEach(item => fruit[item] ? fruit[item]++ : fruit[item] = 1)
console.log(Object.keys(fruit).length)

= = 對(duì)不起 我傻逼了 謝謝樓上提醒

console.log(new Set(["蘋果","蘋果","西瓜","蘋果","西瓜","香蕉","香蕉"]).size)
2017年1月5日 23:04
編輯回答
掛念你

 var a = ["蘋果", "蘋果", "西瓜", "蘋果", "西瓜", "香蕉", "香蕉"],
n = a.filter(function(e, i, a) {
  return a.indexOf(e) === i;
});
console.log(n);
2017年3月19日 00:57
編輯回答
咕嚕嚕
      var arr=["蘋果","蘋果","西瓜","蘋果","西瓜","香蕉","香蕉"];
      var fruits ={}
      arr.forEach((value)=>{
        fruits[value] = 1
      })

      var arr1 = []
      for(var fruit in fruits){
        arr1.push(fruit)
      }
      console.log(arr1);
2017年1月18日 20:10
編輯回答
萌吟
//支持es6
let arr=["蘋果","蘋果","西瓜","蘋果","西瓜","香蕉","香蕉"];
let arrNew = Array.from(new Set(arr))
console.log(arrNew) 
看我文章有封裝 可調(diào)用

https://segmentfault.com/a/11...


//不支持es6  簡單去重
百度一堆 就不寫了
2017年9月13日 01:40
編輯回答
夏夕
function find_duplicate_in_array(arra1) {
  var i,
  len=arra1.length,
  result = [],
  obj = {}; 
  for (i=0; i<len; i++)
  {
  obj[arra1[i]]=0;
  }
  for (i in obj) {
  result.push(i);
  }
  return result;
  }
var arr = [1, 2, -2, 4, 5, 4, 7, 8, 7, 7, 71, 3, 6];
console.log(find_duplicate_in_array(arr));

效果:
["1","2","3","4","5","6","7","8","71","-2"]

參考:JavaScript: Find duplicate values in a array

2017年5月16日 17:49