js将数组内的对象值转换为字符串

时间:2018-03-27 13:32:32

标签: javascript

代码有效可以在所有情况下将value的类型更改为字符串。
但我想知道是否有更好/更清洁的方法来做它甚至使用lodash。

const dummyResult = [
    { id: 1, value: false },
    { id: 2, value: true },
    { id: 3, value: 'text' }
]

for (let i = 0; i < dummyResult.length; i++) {
    if (typeof (dummyResult[i].value) === 'boolean') {
        dummyResult[i].value = dummyResult[i].value.toString()
    }
}

期望的结果:

 dummyResult = [
    { id: 1, value: 'false'},
    { id: 2, value: 'true' },
    { id: 3, value: 'text' }
]

3 个答案:

答案 0 :(得分:3)

只需使用forEach:

&#13;
&#13;
  router.post('/add-user-to-team',
    authController.populateUserById,
    authController.addToTeam,
    authController.respond 
  );
&#13;
&#13;
&#13;

但我认为你不必检查它是否是布尔值:

&#13;
&#13;
const dummyResult = [
    { id: 1, value: false },
    { id: 2, value: true },
    { id: 3, value: 'text' }
]

dummyResult.forEach(e => typeof e.value === 'boolean' && (e.value = e.value.toString()));

console.log(dummyResult);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

如果你的意思是更短,这是一种方法

const dummyResult = [
    { id: 1, value: false },
    { id: 2, value: true },
    { id: 3, value: 'text' }
]

console.log(
  dummyResult.map(a=>{return{id: a.id, value: a.value.toString()}})
)

答案 2 :(得分:0)

您只需使用forEach循环数组并将value属性的值转换为字符串:

&#13;
&#13;
const dummyResult = [
    { id: 1, value: false },
    { id: 2, value: true },
    { id: 3, value: 'text' }
]

var res = [];
dummyResult.forEach((obj) => {
  obj.value = obj.value.toString();
  res.push(obj);
});

console.log(res);
&#13;
&#13;
&#13;