在以下代码中,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]; });
答案 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);