为了账号安全,请及时绑定邮箱和手机立即绑定

将 Javascript 对象数组缩减为字符串

将 Javascript 对象数组缩减为字符串

海绵宝宝撒 2022-10-27 15:56:37
我想将项目映射到数量,就像这样item: quantity。假设我有一个对象数组:{  Item: "",  Quantity : 2,},{  Item: "B",  Quantity : 7,},{  Item: "",  Quantity : "",}]我应该得到以下字符串输出`: 2, B: 7`我已经尝试了基本的 for 循环和 if 条件,如下所示,但我想要更短的var str = "";for (var a = 0; a < array.length; a++) {  str += array[a].Item + ",";  str += array[a].Quantity;  if (a != array.length - 1) {    str += ",";  }}
查看完整描述

2 回答

?
开满天机

TA贡献1786条经验 获得超13个赞

使用 array.reduce() 将是一种更好、更清洁的方法。


let arr = [{ Item: "", Quantity: 2 }, { Item: "B", Quantity: 7 }, { Item: "", Quantity: "" }]

const groupBy = arr.reduce(function (total, obj) 

               { 

                 total += (obj.Item + ":" + (obj.Quantity + " , ")); 

                 return total; 

                }, 0); 


查看完整回答
反对 回复 2022-10-27
?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

您可以映射这些值并加入它们。


var array = [{ Item: "", Quantity: 2 }, { Item: "B", Quantity: 7 }, { Item: "", Quantity: "" }],

    string = array

        .filter(({ Item, Quantity }) => Item || Quantity)

        .map(({ Item, Quantity }) => `${[Item ? Item : "", Quantity ? Quantity: ""].join(': ')}`)

        .join(', ');

    

console.log(string);


查看完整回答
反对 回复 2022-10-27
  • 2 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信