【问题标题】:How to retrieve object property values with JavaScript?如何使用 JavaScript 检索对象属性值?
【发布时间】:2019-05-30 00:06:27
【问题描述】:

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

【问题讨论】:

标签: javascript jquery node.js ecmascript-6


【解决方案1】:

您可以使用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);

或者,如果您更喜欢 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);

【讨论】:

    【解决方案2】:

    你可以这样写:

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

    【讨论】:

      【解决方案3】:

      JavaScript 有一个用于数组的原生 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);

      【讨论】:

        【解决方案4】:

        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);

        【讨论】:

        • 不工作仍然返回相同的数据。我只想要数字数组。
        • numbers2 仅返回数字。你到底想要什么,你能展示你的答案例子吗
        • @AndrewL 先生,您的回答与我的第二个控制台相同,我假设用户在这里可能添加了 # 形式他的一些辞职,他并没有说要删除他的条目。
        猜你喜欢
        • 2013-09-24
        • 1970-01-01
        • 2017-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多