javascript - 当 option.amount 等于零时获取数组中对象的名称

标签 javascript

我正在尝试获取一个对象名称数组,这些对象的 options.amount 都为零。谢谢你的时间。这是我尝试过的:

let variants = [        
        {
            name: 'extra',
            options: [
                {
                    name: 'meat',
                    price: 3,
                    amount: 0
                },
                {
                    name: 'cheese',
                    price: 1,
                    amount: 0
                }
            ]
        },
        {
            name: 'sauce',
            options: [
                {
                    name: 'ketchup',
                    price: 2,
                    amount: 1
                },
                {
                    name: 'mayo',
                    price: 1,
                    amount: 0
                }
            ]
        }
    ];

//Expected output = ['extra']

let arrayOfOptionsNames = variants.map(x => x.options.filter(y => y.amount === 0 ? x.name : 0))
console.log(arrayOfOptionsNames)

最佳答案

您可以使用 Array.prototype.filter()Array.prototype.every() 方法来获得结果。 Every 方法测试数组的每个元素是否通过给定回调函数的测试并返回 bool 值。

const variants = [
  {
    name: 'extra',
    options: [
      {
        name: 'meat',
        price: 3,
        amount: 0,
      },
      {
        name: 'cheese',
        price: 1,
        amount: 0,
      },
    ],
  },
  {
    name: 'sauce',
    options: [
      {
        name: 'ketchup',
        price: 2,
        amount: 1,
      },
      {
        name: 'mayo',
        price: 1,
        amount: 0,
      },
    ],
  },
];
const ret = variants
  .filter((x) => x.options.every((y) => y.amount === 0))
  .map((x) => x.name);
console.log(ret);

关于javascript - 当 option.amount 等于零时获取数组中对象的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64826321/

相关文章:

javascript - 创建正则表达式来将 html 解析为 MXML 语法

javascript - 从指令的链接函数获取 DOM 层次结构中的元素 [AngularJS]

javascript - 使用 Box API v2 在 Angular.js 中处理未经授权的请求

javascript - PHP-CodeIgniter : How to get the corresponding html table row values to be deleted by Javascript

javascript - jQuery 验证错误类影响 Select 元素

javascript - 我如何在 Vuejs 和 Expressjs 中上传文件

javascript - 类似 componentDidUpdate 的事件,但只触发一次

javascript - 外部依赖项在 Nav.svelte 中不起作用

Javascript - 用正则表达式替换字符串以格式化数字

javascript - 如何检查 React Native 中的 AsyncStorage 中是否存在 key ? getItem() 总是返回一个 promise 对象