如何使用JavaScript检索对象属性值?

时间:2019-01-03 11:45:12

标签: javascript jquery node.js ecmascript-6

在以下代码中,users是一个对象,我需要将其转换为仅包含属性值的数组:

users = [
  { mobile: '88005895##' },
  { mobile: '78408584##' },
  { mobile: '88008335##' }
];

所需的输出:

[88005895##,78408584##,88008335##];

以下jQuery代码可以正常工作,但我不知道如何使用纯JavaScript实现相同的功能:

var objNumber = $.map(users, function(value, index) {
  return [value];
});
console.log(objNumber);

到目前为止,我已经尝试过:

var objNumber = Object.keys(users).map(function (key) { return users[key]; });

4 个答案:

答案 0 :(得分:4)

您可以将map()方法与 ES6 fat arrow function表达式一起使用,以在一行中检索值,如下所示:

users.map(x => x.mobile);

查看下面的代码段,以获取上面的 ES6方法的实际示例:

var users = [{mobile:'88005895##'},{mobile:'78408584##'},{mobile:'88008335##'}];
       
var mob = users.map(x => x.mobile);

console.log(mob);


或者,如果您更喜欢没有 fat箭头功能 ES5方法,则可以这样映射数组:

users.map(function(x) {
  return x.mobile;
});

查看下面的代码段,以获取上面的 ES5方法的实际示例:

var users = [{mobile:'88005895##'},{mobile:'78408584##'},{mobile:'88008335##'}];
       
var mob = users.map( function(x) {
  return x.mobile;
});

console.log(mob);

答案 1 :(得分:1)

您可以这样写:

var users = [ { mobile: '88005895##' },
  { mobile: '78408584##' },
  { mobile: '88008335##' } ];
  
  
users.map(userData => console.log(userData))

答案 2 :(得分:1)

JavaScript为Array提供了一个原生map函数,您可以像这样使用它,在我的示例中,我刚刚编写了一个名为process的函数,该函数只返回了mobile属性一个对象,我的意思是如果您愿意的话,您可以做各种事情,这只是您可以做的一个例子。

我的意思是您可以全部写在一行上,即

const demo = users.map(user => user.mobile);

const users = [ 
  { mobile: '8800589595' },
  { mobile: '7840858487' },
  { mobile: '8800833524' } 
];

// Do some magic stuff here...
const process = u => u.mobile; 

// Map the array...
const demo = users.map(user => process(user));

// Results...
console.log(demo);

答案 3 :(得分:1)

users = [ { mobile: '88005895##' },
  { mobile: '78408584##' },
  { mobile: '88008335##' } ];
var numbers = users.map(function(value, index, array){
	return value;
	
	});
var numbers2 = users.map(function(value, index, array){
	return value.mobile;
	});
var num='';
users.map(function(value, index, array){
	num+=value.mobile;
	return num;
	});	
	console.log(numbers);
	console.log(numbers2);
	console.log(num);