js操作对象和数组对象 取keyvalue

JavaScript08

js操作对象和数组对象 取keyvalue,第1张

var people = [

  { "name": "bob", "dinner": "pizza" },

  { "name": "john", "dinner": "sushi" },

  { "name": "larry", "dinner": "hummus" }

]

people.filter(function (person) { 

  if(person.dinner){

    console.log(person.dinner)

  }

  if(person.name){

    console.log(person.name)

  }

})

var people1 = { "name": "bob", "dinner": "pizza" }

Object.keys(people1)

console.log(Object.keys(people1))

var jsonObj = {"1" : 50,"2" : 40,"3" : 40,"4" : 30,"5" : 20,"6" : 20,"7" : 20,"8" : 20,"9" : 20, "10" : 20}

var keyAry = []

var valueAry = []

for(var key in jsonObj){

  keyAry.push(key)

  valueAry.push(jsonObj[key])

}

console.log(keyAry)

console.log(valueAry)

function clear(arr) {

// 1 如何获取数组中每一个元素出现的次数

var o = {}// 1.1 记录数组中元素出现的次数

for (var i = 0i <arr.lengthi++) {

var item = arr[i]// 数组中的每一个元素

// o[item] = 1

// 1.2 判断o对象是否有当前遍历到的属性

if (o[item]) {

// 如果o[item] 存在,说明次数不为1

o[item]++

} else {

// 如果o[item] 不存在,说明是第一次出现

o[item] = 1

}

}

// console.log(o)

// 2 生成一个新的数组,存储不重复的元素

var newArray = []

// 2.1 遍历对象o中的所有属性

for (var key in o) {

// 2.2 判断o对象中当前属性的值是否为 1 如果为1 说明不重复直接放到新数组中

if (o[key] === 1) {

newArray.push(key)

} else {

// o对象中当前属性 次数不为1 ,说明有重复的,如果有重复的话,只存储一次

// 判断当前的newArray数组中是否已经有该元素

if (newArray.indexOf(key) === -1) {

newArray.push(key)

}

}

}

return newArray

}

var array = ['c', 'a', 'z', 'a', 'x', 'a']

var newArray = clear(array)

console.log(newArray)