例如,我有一个包含3个数字的数组:
var arr = [124, -50, 24];
我需要将此数组转换为对象:
{
x: 124,
y: -50,
z: 24
}
我不想使用"旧式"语法,例如:
{
x: arr[0],
y: arr[1],
z: arr[2]
}
所以现在,我正在使用这种语法:
const [x, y, z] = [...arr];
const obj = {x, y, z};
但是,有没有办法用直接的解构数组来对象而不需要临时变量?
答案 0 :(得分:1)
正如comment中已经提到的那样,您可以使用Immediately Invoked Function Expression (IIFE)在单个步骤中创建对象,但是与多个步骤相比,它的可读性较差。
const arr = [124, -50, 24];
const obj = (([x, y, z]) => ({ x, y, z }))(arr);
console.log(obj);
答案 1 :(得分:1)
只需使用此
val privKey = "My wallet key"
// Web3j
val credentials = Credentials.create(privKey!!.toString(16))
val amountWei = Convert.toWei(edtAmount.text.toString(),
Convert.Unit.ETHER).toBigInteger()
val rawTransaction = RawTransaction.createEtherTransaction(
BigInteger.valueOf(it.nonce.toLong()),
BigInteger.valueOf(gas_price.toLong()),
BigInteger.valueOf(gas_Limit.toLong()),
edt_addrs.text.toString(),
amountWei)
val signedMessage = TransactionEncoder.signMessage(rawTransaction, credentials)
val hexValue = Numeric.toHexString(signedMessage)
答案 2 :(得分:0)
您也可以
const obj = {};
([obj.x, obj.y, obj.z] = arr);
避免临时变量,但我怀疑这是否有所改善。