2

I'm trying to return an array of objects from an array. So for example. I have an array of strings:

const strArr = ["Some", "Thing"];

And I need to return an Array with 2 objects for each position from the strArr, for example:

result:
[{first_key: "Some"}, {second_key: "Some"}, {first_key: "Thing"}, {second_key: "Thing"}]

I have done this, which works, but I rather work without let:

const numeros = ["some", 'thing']
let arr = [];
numeros.map(valor => {
    const titleContains = {
      title_contains: valor,
    }
    const bodyContains = {
      body_contains: valor,
    }
    
    arr.push(titleContains);
    arr.push(bodyContains);
});

console.log(arr)

This code gives me the right result, althought map is being used wrong and I'm have to use a let which I don't want to.

2 Answers 2

2

You could take Array#flatMap and return two objects for each value.

const
    data = ["Some", "Thing"],
    result = data.flatMap(valor => [{ first_key: valor }, { second_key: valor }]);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Sign up to request clarification or add additional context in comments.

Comments

0

Here's a version with a reduce, you can read more about it here

const numeros = ["some", 'thing']
const arr = numeros.reduce((acc, valor) => {
    const titleContains = {
      title_contains: valor,
    }
    const bodyContains = {
      body_contains: valor,
    }
    
    acc.push(titleContains);
    acc.push(bodyContains);
    return acc;
}, []); // <==== note an empty array here.

console.log(arr)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.